Ember.js 在余烬数据中对新记录调用save()时,记录未添加到模型中
使用余烬数据0.13-59和余烬1.0.0 RC 6(来自起动机套件) 问题:当Ember.js 在余烬数据中对新记录调用save()时,记录未添加到模型中,ember.js,ember-data,Ember.js,Ember Data,使用余烬数据0.13-59和余烬1.0.0 RC 6(来自起动机套件) 问题:当save()到从App.Userstat.createRecord({…})创建的新记录时,服务器获取POST并成功返回id,但新记录在Userstat模型中不可用 为了更好地理解示例:这是一个测验应用程序(用于多项选择题)。每个问题都有多个选项,当用户选择一个选项时,他们对相应问题的选择存储在一个模型中,App.Userstat 在每个问题上,应用程序都需要知道用户是否已经回答了这个问题,或者是新问题 我将计算属性
save()
到从App.Userstat.createRecord({…})
创建的新记录时,服务器获取POST
并成功返回id
,但新记录在Userstat
模型中不可用
为了更好地理解示例:这是一个测验应用程序(用于多项选择题)。每个问题都有多个选项,当用户选择一个选项时,他们对相应问题的选择存储在一个模型中,App.Userstat
在每个问题上,应用程序都需要知道用户是否已经回答了这个问题,或者是新问题
我将计算属性用作setter
和getter
。当用户选择一个选项(选项的值被传递到computed属性)时,调用setter
。首先,它检查用户当前问题的记录是否存在。如果它不存在,它将创建一个新记录。如果确实存在,则只应发出包含更新内容的PUT
请求
代码更新(7月8日上午11点)
无论我设置了多少次selected
,它总是发送一个POST
(与只发送PUT请求的更新相反),因为它不会在第一次将记录添加到模型中
为了进一步演示,在computed属性的setter
部分,当我放置此代码时:
var stats = this.get('controllers.Userstats')
console.log stats
Userstats控制器显示所有以前存在的记录,但不显示新提交的记录
为什么新记录在Isave()
或commit()
之后不可用
谢谢:)
编辑
也许这与我在singular model
App.Userstat
中添加一条记录有关,然后当我查找它时,我正在使用UserstatsController进行搜索,它是一个数组控制器???我不知道这是否是一个输入错误,但计算属性定义错误,应该是这样的:
App.QuestionController = Ember.ObjectController.extend({
needs: 'userstats',
choice: 'controllers.userstats.choice',
chosen: function(key, value) {
...
}.property('choice')
...
});
在属性()。这样,如果choice
更改,将触发selected
cp
如果有帮助,请告诉我。我不知道这是否是打字错误,但计算属性的定义方式错误,应该如下所示:
App.QuestionController = Ember.ObjectController.extend({
needs: 'userstats',
choice: 'controllers.userstats.choice',
chosen: function(key, value) {
...
}.property('choice')
...
});
在属性()。这样,如果choice
更改,将触发selected
cp
如果有帮助,请告诉我。这就是您的全部代码吗?好像错过了什么?和下面提到的直觉像素一样,有一些打字错误(比如createRecord缺少右括号…)。无论如何,您似乎从未定义要传递给新记录的问题变量?而且您永远不会将该新记录添加到Userstats
控制器中,因此在其模型上使用findProperty
时,它将永远找不到它。。。您可能还必须提交新的newStat
?感谢您的关注!我遗漏了重要的部分。我一定是在编辑过程中重写了它们(已经晚了)。我已经更新了代码,以反映我的真实代码和我所经历的行为-即无法使用在Userstats
控制器上找到最近提交的记录。findProperty
是否所有的代码都已更新?好像错过了什么?和下面提到的直觉像素一样,有一些打字错误(比如createRecord缺少右括号…)。无论如何,您似乎从未定义要传递给新记录的问题变量?而且您永远不会将该新记录添加到Userstats
控制器中,因此在其模型上使用findProperty
时,它将永远找不到它。。。您可能还必须提交新的newStat
?感谢您的关注!我遗漏了重要的部分。我一定是在编辑过程中重写了它们(已经晚了)。我已经更新了代码,以反映我的真实代码和我所经历的行为-即无法在Userstats
控制器上使用.findProperty
找到最近提交的记录感谢您的发现!我的问题中有几个拼写错误。但我的真实代码确实有一个属性()。请参阅更新的代码。我重命名了var questionModel
,添加了.save()
和.property()
。这些已经在我的代码中,所以问题一定在别处。谢谢你发现了!我的问题中有几个拼写错误。但我的真实代码确实有一个属性()。请参阅更新的代码。我重命名了var questionModel
,添加了.save()
和.property()
。这些已经在我的代码中,所以问题一定在别处。