2016-11-20 93 views
0

問題是我無法正確顯示我對一個花費屬性所做的更改。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"); 
}),