Ember.js 正在尝试向FIXTURE添加一个简单的项目
我有一个简单的固定装置:Ember.js 正在尝试向FIXTURE添加一个简单的项目,ember.js,Ember.js,我有一个简单的固定装置: App.User.FIXTURES = [ { userid: 1, name: 'George', email: 'george@gmail.com', bio: 'Lorem Ipsum', created: 'Jan 5, 2015' }, { userid: 2, name: 'Tom', email: 'tom@hotmail.com', bio: 'Lorem Ipsum 2', created: 'Jan 15, 2015' },
App.User.FIXTURES = [
{ userid: 1, name: 'George', email: 'george@gmail.com', bio: 'Lorem Ipsum', created: 'Jan 5, 2015' },
{ userid: 2, name: 'Tom', email: 'tom@hotmail.com', bio: 'Lorem Ipsum 2', created: 'Jan 15, 2015' },
{ userid: 3, name: 'Mary', email: 'mary@aol.com', bio: 'Lorem Ipsum 3', created: 'Jan 25, 2015' }
];
我有一个简单的提交:(片段)
我认为这是正确的,因为我不再在createRecord上出现错误,但现在我出现了错误,有什么想法吗?我又错过了一步,只是为了把东西塞进固定装置
Uncaught TypeError: Object function () {
if (!wasApplied) {
Class.proto(); // prepare prototype...
}
o_defineProperty(this, GUID_KEY, undefinedDescriptor);
o_defineProperty(this, '_super', undefinedDescriptor);
Kingpin2k是正确的,因为在UserModel本身上调用createRecord是使用Ember数据的一种旧方法。如果使用的是最新版本,则应从store对象调用
createRecord
下面是它的外观:
App.AddController = Ember.ArrayController.extend({
actions: {
save: function () {
//Create a new user
var user = this.store.createRecord('user',{
id: 4,
userid: 4,
name: 'Created person',
email: 'sdh',
bio: 'my bio',
created: '6543456'
});
// Saves the new model, but not needed if you're just using FIXTURES
// Making the call shouldn't throw any errors though and is used in the Guide
user.save();
// Now you can find your record in the store
this.store.find('user', 4).then(function(user){
console.info(user);
});
}
}
});
这是在以下设备上测试的:
DEBUG: -------------------------------
DEBUG: Ember : 1.6.0-beta.1+canary.24b19e51
DEBUG: Handlebars : 1.0.0
DEBUG: jQuery : 2.0.2
DEBUG: -------------------------------
我建议您阅读《灰烬入门指南》中的“创建新模型实例”部分,因为它们涵盖了以下主题:
您更改了什么导致了错误?您需要在新记录上调用save以将其实际保存回存储区
var user=App.user.createRecord({id:4,userid:4,name:'Created person',email:'sdh',bio:'my bio',Created:'6543456'});user.save()代码>参见指南的这一部分:谢谢Sarus。对这一点完全陌生,并试图尽快掌握这一点。你的东西起作用了,但我猜我在保存时出错了?无法加载XMLHttpRequestfile:///G:/users. 请求已重定向到'file:///G:/users/,这是不允许用于需要飞行前的跨源请求的。只需尝试将新项目放回存储区,以便更新UI中的我的列表。没有JSON或花哨的东西,只是本地的东西。如果你是纯本地的,不要调用save,将其注入存储区是不必要的。这是一种使用ember数据的旧方法,你使用的是哪个版本?谢谢Sarus,我只是使用了ember.js网站上的初学者软件包。调试:-------------------------------------ember-1.4.0.js:3461调试:ember:1.4.0 ember-1.4.0.js:3461调试:ember数据:1.0.0-beta.7.f87cba88 ember-1.4.0.js:3461调试:把手:1.1.2 ember-1.4.0.js:3461调试:jQuery:1.10.2 ember-1.4.0.js:3461调试:-----------------这是我得到错误的保存位置:无法加载XMLHttpRequestfile:///G:/users. 请求已重定向到'file:///G:/users/,这不允许用于需要飞行前的跨源请求。出于好奇,您是否在不使用web服务器的情况下运行starter软件包?无论如何,正如kingpin2k所提到的,您不需要调用save
就可以将项目实际保存到存储中,尽管新记录不会被保存。是的,没有web服务器。我用的是入门包,我猜周五是1.4.0,现在是1.5.0,还是一样的错误。我启动了Javascript:save()返回XMLHttpRequest错误,我只是尝试更新fixture,使其包含一个新项,然后刷新视图。删除也是一样,但我想如果我弄清楚了保存的方法,删除就会随之而来。我想问题是你没有在实际的Web服务器上托管你的项目,因为它试图访问Chrome不允许的本地文件系统。如果你在windows上运行apache服务器,你可能想看看WAMP之类的东西。我明白了。是的,我只是在file:///G:/EmberProject/index.html. 我在VisualStudio中,我将做一个适当的web:)
DEBUG: -------------------------------
DEBUG: Ember : 1.6.0-beta.1+canary.24b19e51
DEBUG: Handlebars : 1.0.0
DEBUG: jQuery : 2.0.2
DEBUG: -------------------------------