Ember.js Ember JS无法使用新的Ember数据语法创建记录
我试图使用新的余烬数据语法,如下所述:(从读取事务消失:保存单个记录) 当我点击save按钮时,我得到一个错误Ember.js Ember JS无法使用新的Ember数据语法创建记录,ember.js,ember-data,Ember.js,Ember Data,我试图使用新的余烬数据语法,如下所述:(从读取事务消失:保存单个记录) 当我点击save按钮时,我得到一个错误uncaughttypeerror:无法在控制台中调用undefined的方法'save'。在网络选项卡中,也没有对api的POST请求 模板 代码:{{input value=Code}} 图像:{{input value=Image}} 奥普斯兰 app.js(相关代码) App.Router.map(函数(){ 本资源(“土地代码”), 该资源(“土地代码”,函数(){ 本条
uncaughttypeerror:无法在控制台中调用undefined的方法'save'。在网络选项卡中,也没有对api的POST请求
模板
代码:{{input value=Code}}
图像:{{input value=Image}}
奥普斯兰
app.js(相关代码)
App.Router.map(函数(){
本资源(“土地代码”),
该资源(“土地代码”,函数(){
本条路线(“新”);
});
});
App.LandcodeNewRoute=Ember.Route.extend({
模型:函数(){
this.store.createRecord('landcode');
},
行动:{
saveLandcode:函数(){
this.modelFor('landcode').save();//不保存
}
}
});
App.ApplicationAdapter=DS.RESTAdapter.extend({
名称空间:“api”
});
App.Store=DS.Store.extend({
适配器:“App.ApplicationAdapter”
});
App.Landcode=DS.Model.extend({
代码:DS.attr('string'),
图像:DS.attr('string')
});
您正在使用this.modelFor('landcode')
这将从App.LandcodeRoute
获取返回的模型,但您的模型是从LandcodeNewRoute
返回的。只需使用this.currentModel
,因为您需要当前路由的模型
App.LandcodeNewRoute = Ember.Route.extend({
model: function() {
return this.store.createRecord('landcode');
},
actions: {
saveLandcode: function(){
this.currentModel.save();
}
}
});
您正在使用this.modelFor('landcode')
这将从App.LandcodeRoute
获取返回的模型,但您的模型是从LandcodeNewRoute
返回的。只需使用this.currentModel
,因为您需要当前路由的模型
App.LandcodeNewRoute = Ember.Route.extend({
model: function() {
return this.store.createRecord('landcode');
},
actions: {
saveLandcode: function(){
this.currentModel.save();
}
}
});
您的模型还应包括路由名称
App.LandcodeNewRoute = Ember.Route.extend({
model: function() {
return this.store.createRecord('landcode');
},
actions: {
saveLandcode: function(){
this.modelFor('landcode.new').save(); // the correct model
}
}
});
您的模型还应包括路由名称
App.LandcodeNewRoute = Ember.Route.extend({
model: function() {
return this.store.createRecord('landcode');
},
actions: {
saveLandcode: function(){
this.modelFor('landcode.new').save(); // the correct model
}
}
});
谢谢你的回答。然而,这两种解决方案给出了与以前相同的错误。我去设置一个JSFIDLE,然后每个人都会清楚这是怎么回事。我在你的代码中看到,你缺少这个.store.createRecord中的返回值
。。。您是否更新了当前的实现?嗨,Márcio,谢谢您最后的评论!Indead,我错过了你添加的返回声明。我删除了我最后的JS-Bin评论,顺便说一句,在JSFIDLE或JS-Bin上设置一个Ember.JS应用程序是一项非常不愉快的活动。现在我们已经找到了错误,再次感谢!谢谢你的回答。然而,这两种解决方案给出了与以前相同的错误。我去设置一个JSFIDLE,然后每个人都会清楚这是怎么回事。我在你的代码中看到,你缺少这个.store.createRecord中的返回值
。。。您是否更新了当前的实现?嗨,Márcio,谢谢您最后的评论!Indead,我错过了你添加的返回声明。我删除了我最后的JS-Bin评论,顺便说一句,在JSFIDLE或JS-Bin上设置一个Ember.JS应用程序是一项非常不愉快的活动。现在我们已经找到了错误,再次感谢!