Ember - 如何将this.get('model')转换为js对象

时间:2015-07-29 07:38:20

标签: javascript ember.js

我正在构建一个Ember组件,它正在传递一个模型

{{ratings-summary-comp model=model}}

所以你可以在组件的js文件中的一个动作中调用这个模型,如下所示:

this.get('model')

当我在浏览器控制台中记录它时,它会输出某种类:

Class {id: "1", store: Class, container: Container, _internalModel: InternalModel, currentState: Object…}

我想将其转换为由模型属性组成的普通JS对象,因此我可以调用这样的属性:

model["attribute"]

这样我就可以将属性白名单推送到行动中的一个档案中 怎么样?

2 个答案:

答案 0 :(得分:2)

该模型只是另一个Ember对象。您可以使用get访问其属性,如

this.get('model').get(attribute)

如果是多个属性,您可以使用getProperties

this.get('model').getProperties('firstAttribute', 'secondAttribute', ....);

答案 1 :(得分:0)

如果您只需要一组属性名称,可以按照this post中的建议在ember github问题页面上使用Object.keys

运行Object.keys(this.get("model"))将为您提供一系列属性名称。

这是JSBin example

修改 - 帖子使用的是Ember.keys,但现在已弃用此版本,转而使用Object.keys