【发布时间】:2015-03-26 08:01:12
【问题描述】:
我正在尝试创建一个曲目列表页面。在页面上,我们有带有他们的名字、艺术家等的歌曲。当用户为一首歌曲投票(上/下)时,应更新投票数并重新过滤列表,以使得票最多的歌曲成为列表中的第一位。
到目前为止,这是由服务器完成的。但我们正试图避免get 请求,以便只需要完成一个post 的投票。
获取更新的票数非常简单:
route.store.find('Track', track_id).then(function (track) {
track.set('votes', track.get('votes') + 1);
});
但是在 Google 和 Ember 文档中搜索了一段时间后,结果的排序似乎没有太多内容,因此当我更新模型上的属性时,模板上的订单也会更新。
型号:
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 世界的新手,不知道这里出了什么问题。
【问题讨论】:
-
你应该使用observes。如果要更新到 ember 2,请不要使用控制器,因为控制器将被弃用。
标签: ember.js ember-data