当ember中的属性发生变化时,列表不会求助

时间:2017-04-30 00:12:52

标签: javascript ember.js model

我已经制作了一个小型演示应用程序,我有一个推文列表,我每0.3秒更改一个随机推文的收藏数量,该列表应该显示基于收藏夹的前三条推文,但我可以每次为推文更改一些收藏时,都不要去求助。

我已使用此应用程序在jsfiddle中进行了演示(必须按下显示列表才能显示该列表)。

按下开始更改收藏夹按钮时,收藏夹开始更改。

在我的排序功能中,我希望它检查收藏夹是否已更改任何推文

 App.AppModel = Ember.Object.extend({
                topTweets: function(){
                    return this.get('tweets').toArray().sort(function(a, b){
                        console.log("sort");
                        return b.favorites-a.favorites;
                    }).slice(0, 3);
                }.property('tweets.@each.favorites')
            });

这是我更改随机推文收藏的地方

  setInterval(function(){
                                   var iPosition = _.random(0, numTweets-1);
                                   var iFavorites = _.random(0, 4000);
                                    App.appModel.get('tweets').set(iPosition+'.favorites', iFavorites);
                                    App.appModel.get('tweets').set(iPosition+'.text', iFavorites)
                                }.bind(this),300);

收藏夹正在改变我只是想知道为什么这个名单不合适。

1 个答案:

答案 0 :(得分:1)

在下面的行中,您获得topTweets并设置为data,并且data上没有观察者设置,以观察更改的基础数据。

this.set('model', {data: App.appModel.get('topTweets')});

您需要将model设置为模型:

this.set('model', App.appModel);

并在模板中迭代模型,如:

{{#each model in this.model.topTweets}}