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']