2
Controller:
games : Ember.A(["1", "2", "3"]),

View:
{{#each view.games}}
    {{view Ember.TextField valueBinding="this"}}
{{/each}}

テキストフィールドの値を変更すると、同時に配列が変更されませんでしたか?

4

1 に答える 1

3

うーん、これについては奇妙に感じます...配列でオブジェクトを使用する場合、バインディングは文字列でうまく機能しますが、実際には機能しません...

<script type="text/x-handlebars">
  <h5> work with object </h5>
  {{#each plop in App.controller1}}
    {{view Em.TextField valueBinding="plop.name"}} {{plop.name}}
  {{/each}}
  <h5> don't work with strings </h5>
  {{#each plop in App.controller2}}
    {{view Em.TextField valueBinding="plop"}} {{plop}}
  {{/each}}
</script>  

window.App = Ember.Application.create({
  controller1: Ember.ArrayController.create({
    content: [{name:"aaaa"}, {name:"bbbbb"}, {name:"ccccc"}]
  }),

  controller2: ["aaaa", "bbbbb", "cccc"]       
});​

http://jsfiddle.net/Sly7/SQ5g8/

EDIT : バインディングが obj[key] を介して機能する 2 つの方法であるため、明らかに、文字列にはそのようなキーがありません。結論として、配列の位置に基づくバインディングはありません。

于 2012-10-23T07:37:21.573 に答える