本篇是9.0版本针对开发者新变化系列的第二篇,JavaScript Web 资源依赖性,初看标题可能看不出所以然来,看下web资源的界面,会看到多了一个依赖项。
其中又分为两部分,一是web资源的依赖关系,一个是实体属性的依赖性
根据官方文档的原话,当web资源被加载时,它的依赖项同时会被加载,看到这句我想到的第一个应用场景也是之前项目实施过程中的一个痛点,在实体的列表页面加按钮,按钮的事件绑定只能对应单个javascript文件而无法绑定加载多个,设置如下图
但当我示例中的new_demo.js文件中的function想要引用了其他js文件中的function时是就无法做到的。现在有了web资源的依赖项就好实现了,只需要将需要引用的js文件添加到依赖项中即可。
列表上的按钮调用new_demo.js中的TestDepend方法,而TestDepend方法中再去调用new_denpendcy中的ShowDenpendcy方法,ShowDenpendcy方法体很简单,就一句alert测试下效果
function TestDenpend()
{
ShowDenpendcy();
}
function ShowDenpendcy()
{
alert('ShowDenpendcy');
}
最后来看下效果,点击按钮能正确的执行依赖项js文件中的ShowDenpendcy方法。
这是我首先想到的应用场景,当然场景还有很多,待后续项目中发现,而且我的示例是讲到了js,当然也可以添加其他类型的依赖不限于js。
讲完了web资源的依赖,再来看看实体属性的依赖,此处我们使用客户中的传真字段来做示例
下面是两张对比图,一张页面有传真字段,一张页面没有传真字段
如果页面上有这个字段那取值自然没问题,那如果没有呢,只要设置了属性的依赖,一样可以取到值和设置值,但是如果你要getControl去获取字段控件,那肯定是null了,因为表单页面上没有这个控件
这种用法就避免了即想给字段取值或者赋值,又不想要字段存在于页面上(之前的做法是设置字段的隐藏)。
除了设置当前实体,还可以选择其他,比如这的contact的mobilephone,我第一想到的是这样是不是可以取lookup关联字段中的属性字段值了呢?而不是去写js查询了,结果证实我的猜测是错误的(从另一个角度说如果一个实体存在两个关联字段也就推倒了这种猜测)。后续再探索下设置了其他实体的属性字段后怎么用吧。