检查 Ember.js:获取对象(类)的类型?
Posted
技术标签:
【中文标题】检查 Ember.js:获取对象(类)的类型?【英文标题】:Inspect Ember.js: Get the type of an object (Class)? 【发布时间】:2012-10-24 14:07:02 【问题描述】:我经常使用console.log()
,尤其是与Ember.inspect()
结合使用。但我想念一件事:
如何找出对象(类)的类型?
例如:在检查 Ember.get("controller")
时得到类似 <Sandbox.ApplicationController:ember288>
的东西?
【问题讨论】:
【参考方案1】:如果您只需要型号名称(例如app/models/comment.js
的型号名称为comment
),您可以使用thing.constructor.modelName
。
例如:
var aComment = this.get('store').createRecord('comment');
aComment.get('constructor.modelName') // => 'comment'
【讨论】:
这个。这就是我需要的。 当我在模板中使用该字段时,我收到此错误:未捕获错误:您所做的事情导致视图在渲染后但在插入 DOM 之前重新渲染【参考方案2】:另一个有用的功能(在 chrome 中)是 dir
命令。
dir(App.User)
这将为您提供完整的对象信息,而不仅仅是名称。
【讨论】:
【参考方案3】:我知道您正在寻找一个用于调试目的的字符串,但我最初来这个问题是想具体了解如何获取对象的类型,而不是描述对象的字符串。
使用内置的 javascript 属性构造函数将产生用于构造实例的类。例如你可以这样做:
person = App.Person.create();
person.constructor // returns App.Person
person.constructor.toString() // return "App.Person"
【讨论】:
【参考方案4】:如果你得到Class
,你通常可以调用toString()
(或者作为一个快捷方式连接一个空字符串+ ''
)来得到类似<Sandbox.ApplicationController:ember288>
的东西
【讨论】:
正是我需要的!谢谢!以上是关于检查 Ember.js:获取对象(类)的类型?的主要内容,如果未能解决你的问题,请参考以下文章
Mirage 的简单 Ember 数据问题(错误:遇到未定义类型的资源对象)
如何在 Ember.js 中保存具有“日期”类型属性的模型?
coffeescript 1.7 破坏了我的 ember.js 计算属性