Canjs наблюдаемый список записей для автоматического обновления DOM

Как мне определить наблюдаемый объект вместо {case: 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);

но это не обновляет дом.

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 позже и удалите и добавьте элементы в этот список.

Другие вопросы по тегам