#7 绑定

来源:互联网 发布:达州市行知中学 编辑:程序博客网 时间:2024/06/05 02:39

英文原版:https://guides.emberjs.com/v2.13.0/object-model/bindings/

不同于其他框架的实现的绑定,Ember.js中的绑定可以用于任何对象。同时对于Ember使用者来说,计算属性是优先推荐的解决方案。

最简单的添加双向绑定的方式是使用computed.alias()

husband = Ember.Object.create({  pets: 0});Wife = Ember.Object.extend({  pets: Ember.computed.alias('husband.pets')});wife = Wife.create({  husband: husband});wife.get('pets'); // 0// Someone gets a pet.husband.set('pets', 1);wife.get('pets'); // 1

注意哦,绑定不会立即更新的。Ember会一直等到所有的程序代码运行完成后才进行实际的更新,所以你可以对绑定的属性任意次的更改,而且不用担心消耗问题。

单向绑定

单向绑定就是只会影响只是从一方到另一方,一个方向。使用computed.oneWay()就ok了。通常,单向绑定一般用来做性能优化,你可以安全放心的使用双向绑定(其实只要你只保证更改一端的数据,那么双向绑定也就成单向绑定了) 单向绑定有时候挺有用的(比如:账单地址与送货地址重了,但是可以稍后对其进行更改)

user = Ember.Object.create({  fullName: 'Kara Gates'});UserComponent = Ember.Component.extend({  userName: Ember.computed.oneWay('user.fullName')});userComponent = UserComponent.create({  user: user});// Changing the name of the user object changes// the value on the view.user.set('fullName', 'Krang Gates');// userComponent.userName will become "Krang Gates"// ...but changes to the view don't make it back to// the object.userComponent.set('userName', 'Truckasaurus Gates');user.get('fullName'); // "Krang Gates"

本节完

原创粉丝点击