0

我应该如何在此代码中定义可观察对象而不是 {cases: records} 以在更新此可观察对象后自动更新 dom:

init : function( element , options ){
                    var el = this.element;debugger;
                    SObjectModelExt.findAll({sobject: new SObjectModel.Case()}).then(function(records){
                        el.html( can.view('casesView', {cases: records}));
                    });
                }

这是 can.Map({case: []}) 还是 can.List?如何在小胡子助手中使用它?{{#每个案例}}?

我试过像

this.records = new can.Map({case: []});
el.html( can.view('casesView', {cases: records}));

然后在代码中做

this.records.attr('cases', entries);

但它不会更新 dom。

4

1 回答 1

1

您应该能够初始化一个空列表,然后其替换为您返回的应该更新列表的数据。您还可以分配该列表以供以后参考:

init : function( element , options ){
    var el = this.element;
    var cases = this.cases = new can.List();

    SObjectModelExt.findAll({sobject: new SObjectModel.Case()}).then(function(records){
        cases.replace(records);
        el.html( can.view('casesView', { cases: cases }));
    });
}

然后你应该可以this.cases稍后通过它来引用它,并将项目删除和添加到该列表中。

于 2014-06-10T15:01:24.063 回答