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数据语法创建记录_Ember.js_Ember Data - Fatal编程技术网

Ember.js Ember JS无法使用新的Ember数据语法创建记录

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(函数(){ 本资源(“土地代码”), 该资源(“土地代码”,函数(){ 本条

我试图使用新的余烬数据语法,如下所述:(从读取事务消失:保存单个记录)

当我点击save按钮时,我得到一个错误
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应用程序是一项非常不愉快的活动。现在我们已经找到了错误,再次感谢!