我在嘗試保存新記錄時收到此消息。我在SmashingMag的網站上重新創建了演練。我正在使用燼數據v0.14。看着提交,似乎有兩個人有同樣的問題(可能與RESTAdapter有關)。任何人都可以提供答案爲什麼?Uncaught TypeError:對象用戶沒有方法'_create'
App = Ember.Application.create({});
App.Store = DS.Store.extend();
App.User = DS.Model.extend({
first_name: DS.attr('string'),
last_name: DS.attr('string'),
email: DS.attr('string'),
password: DS.attr('string'),
created_at: DS.attr('string'),
updated_at: DS.attr('string'),
fullName: function() {
return this.get('first_name') + ' ' + this.get('last_name');
}.property('first_name','last_name')
});
App.Router.map(function(){
this.resource('users',function(){
this.resource('user', {path: '/:user_id'}, function(){
this.route('edit');
});
this.route('create');
});
});
App.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('users');
}
});
App.UsersRoute = Ember.Route.extend({
model: function() {
return this.store.find('user');
}
});
App.UserRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('user', params.user_id);
}
});
App.UserEditRoute = Ember.Route.extend({
model: function() {
return this.modelFor('user'); // get the same model as the UserRoute
}
});
App.UsersCreateRoute = Ember.Route.extend({
model: function(){
// the model for this route is a new empty Ember.Object
return Em.Object.create({});
},
// in this case (the create route) we can re-use the user/edit template
// associated with the usersCreateController
renderTemplate: function(){
this.render('user.edit', {
controller: 'usersCreate'
});
}
});
App.UsersController = Ember.ArrayController.extend({
sortProperties: ['first_name'],
sortAscending: true,
usersCount: function() {
return this.get('model.length');
}.property('@each')
});
App.UserController = Ember.ObjectController.extend({
deleteMode: false,
actions: {
edit: function() {
// we need transitionToRoute because we are in a controller, otherwise it's transitionTo when in a route
this.transitionToRoute('user.edit');
},
delete: function() {
this.toggleProperty('deleteMode');
},
cancelDelete: function() {
this.set('deleteMode',false);
},
confirmDelete: function() {
this.get('model').deleteRecord();
this.get('model').save();
this.transitionToRoute('users');
this.set('deleteMode',false);
}
}
});
App.UserEditController = Ember.ObjectController.extend({
actions: {
save: function() {
var user = this.get('model');
user.save();
this.transitionToRoute('user',user);
}
}
});
App.UsersCreateController = Ember.ObjectController.extend({
needs: ['user'],
actions: {
save: function() {
// just before saving, we set the creationDate
this.get('model').set('creationDate', new Date());
// create a new user and save it
var newUser = this.store.createRecord('user', this.get('model'));
newUser.save();
// redirects to the user itself
this.transitionToRoute('user', newUser);
}
}
});
出於好奇,是否有任何理由不使用ED 1.0測試版? – Kingpin2k
因爲它看起來像你。 – Kingpin2k
對ember.js沒有多少經驗。無論如何,比較你的代碼和[ember入門指南](http://emberjs.com/guides/getting-started/creating-a-new-model/)它看起來像你使用'this.store.createRecord()'在錯誤的地方。遵循指南,我會把它放在'App.UsersController = Ember.ArrayController.extend({'。但是這是很簡單的猜測。 –