2015-06-08 24 views
-1

我正在構建一個emberjs應用程序原型。當我嘗試保存數據時,我遇到了一個問題。Ember Data Save:TypeError:無法讀取屬性'hasOwnProperty'undefined

我的模型:

App.User = DS.Model.extend({ 
    id: DS.attr('string'), 
    name: DS.attr('string'), 
    description: DS.attr('string') 
}); 

我的控制器:

App.UsersAddController = Ember.ArrayController.extend({ 
    actions: { 
     addUser: function() { 
     var name = this.get('name'); 
     var description = this.get('description'); 
     if (!name.trim() && !description.trim()) { 
      return; 
     } 
     var user = this.store.createRecord('user', { 
      'id': 'id-' + Math.random().toString(36).substr(2, 16), 
      'name': name, 
      'description': description 
     }); 
     this.set('id', ''); 
     this.set('name', ''); 
     this.set('description', ''); 
     user.save(); 
     } 
    } 
}); 

我的模板:

{{input type="text" placeholder="Name" value=name class="name-input"}} 
      {{input type="text" placeholder="Description" value=description class="name-input"}} 
      <button {{action 'addUser'}} class="submit">Submit</button> 

事件冒泡到正確的控制器。但未能保存。我是一名初學者,擁有emberjs。請幫助我。

+1

這是怎麼回事... – Kingpin2k

+0

這不可能是你所有的代碼。我們沒有看到可能重複的[Ember-data「Can not call method'hasOwnProperty'of undefined」](has_onProperty' – Downgoat

+0

)(http://stackoverflow.com/questions/21990844/ember-data-cannot-call-method -afterownproperty-of-undefined) –

回答

0

您應該從模型定義中刪除id屬性。

App.User = DS.Model.extend({ 
    // no id 
    name: DS.attr('string'), 
    description: DS.attr('string') 
}); 
+0

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – Nullify

+0

@ 200OK,答案改變。 – artych