如何检索Ember.js模型的所有属性

sub*_*ing 10 javascript ember.js

我正在使用Ember.js中的表单,我想检索所有模型属性的列表,以便我可以在不同时刻拍摄表单状态的快照.有没有办法获得模型的所有属性列表?

例如,如果我的模型是:

App.User = DS.Model.extend({
  name: DS.attr('string'),
  email: DS.attr('string'),
  current_password: DS.attr('string'),
  password: DS.attr('string'),
  password_confirmation: DS.attr('string'),
  admin: DS.attr('boolean'),
}
Run Code Online (Sandbox Code Playgroud)

然后我想有这样的事情:

> getEmberProps('User')

["name", "email", "current_password", "password", "password_confirmation", "admin"]
Run Code Online (Sandbox Code Playgroud)

pio*_*rze 17

您可以在模型上使用toJSON方法并从对象获取密钥.

Ember.keys(model.toJSON())
Run Code Online (Sandbox Code Playgroud)

请注意,不会返回关系的键.

  • `注意,不会返回关系的关键字 - >我不知道你使用的是哪个版本的ember; 我目前正在使用Ember 1.11.3,因为该版本也会返回关系键. (4认同)

Mic*_*ael 5

您也可以使用以下
网址http : //emberjs.com/api/data/classes/DS.Model.html#property_attributes http://emberjs.com/api/data/classes/DS.Model.html#method_eachAttribute

Ember.get(App.User, 'attributes').map(function(name) { return name; });
Ember.get(userInstance.constructor, 'attributes').map(function(name) { return name; });
Run Code Online (Sandbox Code Playgroud)

关系也有相似的属性。