组件中的Ember值不绑定

时间:2015-04-01 17:51:41

标签: ember.js

我有一个可以输入组件的对象

{{edit-general item=item}}

在此组件内,您可以编辑数组的值。

{{#each value in item.values}}
    <div class="input-field col s6 l6">
        {{input type='text' value=value}}
    </div>
{{/each}}

但是,此值不会绑定。项目在组件内部发生更改,但此更改不会影响模型。

我如何以我想要的方式完成这项工作?

JSBin:http://jsbin.com/modunewoca/31/edit?html,output

1 个答案:

答案 0 :(得分:2)

您无法绑定简单的字符串和对象,您需要将所有这些包装到允许绑定的Ember.Object中。

function m(data) {
  return Ember.Object.create({
    data: data
  });
}

var model = [Ember.Object.create({
  field: 'ethnicity',
  values: [m('African American'), m('Asian'), m('Caucasian'), m('Hispanic'), m('Other')]
}), Ember.Object.create({
  field: 'gender',
  values: [m('Male'), m('Female'), m('Other'), m('Prefer not to disclose')]
})];
  {{#each item in model}}
    <div><b>{{item.field}}</b></div>
    {{#each value in item.values}}
      <div>{{value.data}}</div>
      <div>{{edit-general value=value.data}}</div>
    {{/each}}
    <br><br>
  {{/each}}

更新了JSBin:http://jsbin.com/xebizeyedu/2/edit