2

有人在 ember.js 中尝试过单向绑定吗?它不适合我。

这是我的片段。

App.UserController = Ember.ObjectController.extend({
    user : { "name" : "Albert"} ,
    userCopyBinding: Ember.Binding.oneWay("this.user"); 
});

在车把中:

 <label>user name </label>
 {{view Ember.TextField  valueBinding="userCopy.name"}}

 <label>fist name is {{user.name}}</label>

如果我在输入中输入文本,它也会更改“用户名”。我在这里做错了吗?

4

1 回答 1

3

在您的评论中,您说:

我认为单向绑定不适用于对象。正确的?

是的没错。如指南中所述:

绑定在两个属性之间创建链接,这样当一个属性发生更改时,另一个属性会自动更新为新值。绑定可以连接同一对象上的属性,也可以连接两个不同对象的属性。

所以,是的,oneWay绑定只适用于属性而不是对象。

将您的代码更改为此以使其工作:

App.UserController = Ember.Controller.extend({
  user: Ember.Object.create({name: "Albert"}),
  userNameBinding: Ember.Binding.oneWay("this.user.name"); 
});

然后在模板中:

<label>user name </label>
  {{view Ember.TextField valueBinding="userName"}}
<label>fist name is {{userName}}</label>

演示在这里

希望能帮助到你。

于 2013-07-13T09:26:39.987 回答