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

あなたのコメントであなたは次のように述べました:

オブジェクトに対して一方向バインディングが機能していないと思います。右?

はい、そうです。ガイドに記載されているように:

バインディングは、2 つのプロパティ間にリンクを作成し、一方が変更されると、もう一方が新しい値に自動的に更新されるようにします。バインディングは、同じオブジェクトまたは 2 つの異なるオブジェクトのプロパティを接続できます。

したがって、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 に答える