2016-11-20 3 views
0

Проблема в том, что я не могу правильно отображать изменения, которые я делаю для свойства ember.EmberJs - Вычислимые свойства и шаблон

Вот действие:

toggle_favorites: function() { 
     var favorite = this.get('some_service').get("favorites"); 
     this.set("favorite", favorite); 
     if (favorite.length > 0) { 
     this.set("hasFavorites", true); 
     } 
    // show some feedback, irrelevant 
    }, 

после этого я просто отобразить все как список

{{#each favorite}} ... 

Проблема заключается в том, что, если я продолжать добавлять вещи в список, изменения не будут отраженный в файле hbs.

Я попытался с помощью вычисляемого свойства следующим образом

favs: Ember.computed("hasFavorites", "some_service.favorites", "favorite.length", function() { 
     return this.get("favorite"); 
    }).property('@favorite.length'), 

и показать, что, но без толку. Если я добавлю что-то в список, а затем активирую действие, оно будет успешным, но каждое последовательное добавление не будет отображаться.

Я использую Ember 2.6.

+0

Может быть вы можете предоставить не-рабочий 'уголек-twiddle'? – Lux

ответ

0

У меня есть некоторые странные исправления

Я использую

this.set("favorite", null); 
    this.set("favorite", favorite); 

и

favs: Ember.computed("favorite.[]", function() { 
    return this.get("favorite"); 
    }), 

Установка любимой собственности как нуль, кажется, сделать трюк, хотя я не могу оберните мою голову вокруг нее.

0

@Rentonie, используйте favorite.length или [email protected] Попробуйте

favs: Ember.computed("favorite.length", function() { 
    return this.get("favorite"); 
}), 

или

favs: Ember.computed("[email protected]", function() { 
    return this.get("favorite"); 
}), 
Смежные вопросы