cola.Model
数据项名或路径
该装载模式目前有四种可能的取值:
当一个数据项的值是懒装载的,那么在我们通过get()方法尝试从此数据项中读取内容时,Cola会利用loadMode参数的值来确定要如何来装载尚未装载的数据。
cola.Model
数据项名或路径
数据
cola.Model
以JSON方式定义的一批数据项
cola.Model
数据项名,此处不支持数据路径
以JSON形式定义的
我们可以把描述一个数据项的过程看做是定义一个DataType中的Property,事实上Cola内部的实现机制也就是这样的。 所以此方法第二种参数可传递的JSON配置对象其实也就是一个Property的配置对象。 参考:cola.Property。
cola.Model
数据项名,此处不支持数据路径
DataType的name
当我们直接向此方法的第二个参数传递一个字符串时,Cola会将此字符串理解成DataType的name,并将找到的DataType设置为该Property的数据类型。
cola.Model
cola.Model
数据路径
该方法支持以下三个参数:
此方法可以一次监听一个路径,也可以利用数组定义多个路径。在定义路径时还可以通过通配符来声明路径的监听范围。 比如: 比如 person.* 表示监听person中的所有子属性的值的变化;person.** 这表示监听person中任意一级的子属性的变化。
cola.Model
此方法最常见的使用场景是在将要对数据进行批量的操作之前,先调用 disableObservers() 禁止消息发送。 这样界面就无法得到数据被改变的通知,也就不会随着操作进行大量重复而无意义的重渲染。 当批量的操作完成之后,再调用 enableObservers() 重新允许消息发送。 此时也可以调用 notifyObservers() 方法通知所有观察者进行重渲染。 需要注意的是 disableObservers() 和 enableObservers() 内部是使用计数器来管理的, 这意味着当你连续调用了两次 disableObservers() 之后,必须也要调用两次 enableObservers() 才能冲洗恢复消息发送。
cola.Model
参考 disableObservers()
cola.Model
参考 disableObservers()
cola.Model
Action的name
Action方法
Action其实就是一个Function,将Function声明为一个Action的目的是为了供dom模板来调用。 定义Action其实还有一个更加简单的方法,例如下面的两段代码作用是相同的:model.action("showMessage", function() { ... ... });
和model.action.showMessage = function() { ... ... };
cola.Model
以JSON方法定义的一组Action方法
例如:
model.action({
showMessage: function() {
... ...
},
buyNow: function() {
... ...
}
});
cola.Model
Action的name
此方法不仅可用于查找本Model中的Action,当某个名称的Action在本Model中无法找到时Cola会进一步到父Model中查找。