emberjs与哈希绑定

时间:2012-12-08 09:08:15

标签: javascript ember.js

任何人都可以帮助我。 这是我的, Ember binding with only an hash

这是模板,

<script type="text/x-handlebars">
{{#each Page.PageController.content.tasks}}
{{#view Page.PageView contentBinding="this"}}

{{#unless editing}}
<div>
    <h2>{{title}}</h2> {{view Ember.Checkbox checkedBinding="editing"}}
</div>
{{/unless}}

{{#if editing}}
<div>
    <h2>{{view Ember.TextField valueBinding="title"}}</h2>
    {{view Ember.Checkbox checkedBinding="editing"}}
</div>
{{/if}}

{{/view}}
{{/each}}    
</script>​

这是js,

Page = Ember.Application.create();
Page.PageController = Ember.ObjectController.create({
    content: {
        tasks: [
            {
            title: 'Heading',
            editing: false},
        {
            title: 'Heading',
            editing: false}
        ]
    }
});

Page.PageView = Ember.View.extend({
    edit: function() {
        var content = this.getPath('content');
        content.set("editing", true);
    }
});​

问题是我可以使用视图Ember.Checkbox绑定普通旧哈希的布尔值,但是如何通过链接操作执行此操作?

1 个答案:

答案 0 :(得分:2)

您需要使用Ember Objects而不是普通哈希才能使绑定正常工作,如上例所示,您需要更改代码,如下所示

Page.PageController = Ember.ObjectController.create({
content: Ember.Object.create({
    tasks: [
      Ember.Object.create({
        title: 'Heading',
        editing: false
       }),
      Ember.Object.create({
        title: 'Heading',
        editing: false
      })
    ]
  })
});

如果这有帮助,请告诉我......

更新
Fiddle