Javascript Ember.js将向上和向下投票保存到数据

Javascript Ember.js将向上和向下投票保存到数据,javascript,ember.js,Javascript,Ember.js,我使用这个StackOverflow问题()中的jsFiddle()来添加对我的余烬站点的上下投票。就像这把小提琴一样,我所有的数据都在app.js中,我没有备份的数据库 “向上”和“向下”投票有效,但它不保存该数据,因此会在页面刷新时重置。如果您能在有人投票时帮助您保存更改,我们将不胜感激 控制器 App.ThemeController = Ember.ObjectController.extend({ actions: { voteUp: function () {

我使用这个StackOverflow问题()中的jsFiddle()来添加对我的余烬站点的上下投票。就像这把小提琴一样,我所有的数据都在app.js中,我没有备份的数据库

“向上”和“向下”投票有效,但它不保存该数据,因此会在页面刷新时重置。如果您能在有人投票时帮助您保存更改,我们将不胜感激

控制器

App.ThemeController = Ember.ObjectController.extend({
actions: {
    voteUp: function () {
        console.log("voting up");   
        this.set('votes', this.get('votes') + 1);

    },
    voteDown: function () {
        console.log("voting down");
        this.set('votes', this.get('votes') - 1);
    }
}
});
资料

谢谢, 大卫B

表格

您需要对这些对象调用save(),如下所示

voteDown: function () {
        console.log("voting down");
        this.set('votes', this.get('votes') - 1);
        this.save();
    }

EDIT:但是,如果只使用您提到的JSFIDLE,它没有任何与数据持久性相关的代码。因此,该方法将不起作用。查找余烬数据。

因为您没有持久层,所以当您刷新页面时,应用程序必然会丢失所有状态。通常,人们使用余烬数据进行持久化(更多信息请参见此处)。如果不需要后端数据库,则需要使用本地存储。签出作为一个插件,以灰烬数据轻松做到这一点。这将允许您在刷新期间保留更改,但显然不会在计算机之间同步。

谢谢,我尝试使用余烬数据(将App.whatever更改为App.whatever.FIXTURES),但遇到了大量问题,在刷新页面时数据将不再显示。希望有另一种方法。谢谢你的回复!也许我会再试一次。夹具只是样本数据,用于帮助开发。您需要配置ember数据以使用real data store。您可以使用ember的incrementProperty和decrementProperty简化代码。这里的更多信息:非常感谢你的回答,我想我可以编辑文件中的代码。谢谢你把它清理干净。
voteDown: function () {
        console.log("voting down");
        this.set('votes', this.get('votes') - 1);
        this.save();
    }