Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 模型更新后更新模板_Ember.js_Ember Data - Fatal编程技术网

Ember.js 模型更新后更新模板

Ember.js 模型更新后更新模板,ember.js,ember-data,Ember.js,Ember Data,我正在尝试创建一个曲目列表页面。在这一页上,我们有他们的名字,艺术家等歌曲。当用户为歌曲投票(向上/向下)时,应更新投票数并重新筛选列表,以便投票最多的歌曲位于列表中的第一首 到目前为止,这是由服务器完成的。但是,我们正在努力避免get请求,以便只需为投票做一次post 获取要更新的票数非常简单: route.store.find('Track', track_id).then(function (track) { track.set('votes', t

我正在尝试创建一个曲目列表页面。在这一页上,我们有他们的名字,艺术家等歌曲。当用户为歌曲投票(向上/向下)时,应更新投票数并重新筛选列表,以便投票最多的歌曲位于列表中的第一首

到目前为止,这是由服务器完成的。但是,我们正在努力避免
get
请求,以便只需为投票做一次
post

获取要更新的票数非常简单:

route.store.find('Track', track_id).then(function (track) {
                    track.set('votes', track.get('votes') + 1);
                });
但是在搜索Google和Ember文档一段时间后,似乎没有太多关于结果排序的内容,因此当我更新a模型上的属性时,模板上的顺序也会更新

型号:

App.Track = DS.Model.extend({
    name: DS.attr('string'),
    artist: DS.attr('string'),
    picture: DS.attr('string'),
    votes: DS.attr('number'),

    voted: DS.attr('boolean'),
    vote_type: DS.attr('boolean')
});
控制器:

App.TracklistingController = Ember.ArrayController.extend({
    sortProperties: ['votes'],
    sortAscending: false
});
我使用以下方法获取当前列表中的曲目:

return route.store.all('Track');

这是我们在Ember做的第一个项目,所以我只是Ember世界的新手,不知道这里出了什么问题。

我相信问题在于你获取曲目的方式。您不应该直接从商店访问它们

尝试将TracklistingController重命名为TrackController。通过这种方式,ember可以将其直接绑定到您的模型,然后在轨迹模板内部使用“model”变量迭代所有轨迹(这是由ember自动创建的)

这是从我的头顶,我希望它有帮助

编辑: 查看此链接,它解释了如何正确操作:

您应该使用。如果要更新到ember 2,请不要使用控制器,因为控制器将被去除润滑。