如何在Ember Data& Data中存储数组?更新模板中的每个数组项?

时间:2014-05-02 10:27:53

标签: ember.js ember-data handlebars.js

我有一个Todo-App,现在我想在每个任务后添加一个复选框列表。

当我单击一个复选框时,更改了正确的数组项,但它未在模板中更新。此外,即使创建时的值设置为false,也始终填充复选框。

我在DS.Model中为DS.Transform创建了一个数组属性。

Todos.Todo = DS.Model.extend({
    title: DS.attr('string'),
    quarters: DS.attr('array')
});

模板:

{{#each item in quarters}}
    <input type="checkbox" checked=item {{action "checkIndex" _view.contentIndex on="click"}}>
{{/each}}

_

Todos.TodoController = Ember.ObjectController.extend({
    actions: {
        checkIndex: function (index) {
            var quarters = this.get('model.quarters');
            var value = quarters[index];

            value = value ? false : true;
            var strIndex = '' + index;
            quarters.set(strIndex, value);

            console.log(this.get('model.quarters')[index]); // --> returns updated value

            this.get('model').save();
        }
        ....

似乎我无法迭代数组属性并在保持更新的同时分别呈现每个项目。我搜索了很多解决方案,但仍然没有弄清楚。或者有更好的方法吗?

迭代数组 - &gt;项目未在模板中更新:

{{#each item in quarters}}
    {{item}}
{{/each}}

数组 - &gt; get在模板中更新:

{{quarters}}

JsFiddle:http://jsfiddle.net/Ld7gf/5/

0 个答案:

没有答案