Model 组件

模型是一个组件,它提供了在应用程序中隔离业务逻辑的新特性。它提供默认值、脏值和数据上的深度事件。

所有的数据都应该通过适当的方法进行访问.get, .set, and .data 将会触发相应的事件。不鼓励直接访问它们。

脏值使检查模型和查看值变化变得简单。

深度事件允许你绑定到特定的字段, 像 name 或任何深度字段 像 contact.email。 当字段被更新时将会收到通知。

事件

Change
当模型上的数据变更时触发
Change[key]
当模型上的特定键变更时触发
Change[key.key]
当嵌套的键值变更时触发

例子

Crafty.c('Person', {
  name: 'Fox',
  init: function() { this.requires('Model'); }
});
person = Crafty.e('Person').attr({name: 'blaine'});
person.bind('Change[name]', function() {
  Crafty.log('name changed!');
});
person.attr('name', 'blainesch'); // Triggers event
person.is_dirty('name'); // true
person.changed // name

方法

Back to top

.is_dirty()

帮助确认数据或整个书剑是不是“脏的”,或者已经发生了变更。

例子

person = Crafty.e('Person').attr({name: 'Fox', age: 24})
person.is_dirty() // false
person.is_dirty('name') // false

person.attr('name', 'Lucky');
person.is_dirty(); // true
person.is_dirty('name'); // true
person.is_dirty('age'); // false
person.changed; // ['name']