检查 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 按模型类型/对象值选择视图模板

如何在 Ember.js 中保存具有“日期”类型属性的模型?

coffeescript 1.7 破坏了我的 ember.js 计算属性

Ember.js:从嵌套路由调用 ApplicationRoute 的操作

使用 Ember.js 的 Hashbang URL