EmberJs - 计算属性和模板

时间:2016-11-20 10:58:04

标签: javascript ember.js

问题在于我无法正确显示我对余烬属性所做的更改。

以下是行动:

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。

2 个答案:

答案 0 :(得分:0)

我有一些奇怪的解决方法

我正在使用

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

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

将favorite属性设置为null,似乎可以解决问题,虽然我无法绕过它。

答案 1 :(得分:0)

@Rentonie,使用favorite.lengthfavorite.@each.someprop 尝试

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

favs: Ember.computed("favorite.@each.someprop", function() {
   return this.get("favorite");
}),
相关问题