【发布时间】:2012-10-24 14:07:02
【问题描述】:
我经常使用console.log(),尤其是与Ember.inspect()结合使用。但我想念一件事:
如何找出对象(类)的类型?
例如:在检查 Ember.get("controller") 时得到类似 <Sandbox.ApplicationController:ember288> 的东西?
【问题讨论】:
标签: ember.js
我经常使用console.log(),尤其是与Ember.inspect()结合使用。但我想念一件事:
如何找出对象(类)的类型?
例如:在检查 Ember.get("controller") 时得到类似 <Sandbox.ApplicationController:ember288> 的东西?
【问题讨论】:
标签: ember.js
如果您只需要型号名称(例如app/models/comment.js 的型号名称为comment),您可以使用thing.constructor.modelName。
例如:
var aComment = this.get('store').createRecord('comment');
aComment.get('constructor.modelName') // => 'comment'
【讨论】:
另一个有用的功能(在 chrome 中)是 dir 命令。
dir(App.User)
这将为您提供完整的对象信息,而不仅仅是名称。
【讨论】:
我知道您正在寻找一个用于调试目的的字符串,但我最初来这个问题是想具体了解如何获取对象的类型,而不是描述对象的字符串。
使用内置的 Javascript 属性构造函数将产生用于构造实例的类。例如你可以这样做:
person = App.Person.create();
person.constructor // returns App.Person
person.constructor.toString() // return "App.Person"
【讨论】:
如果你得到Class,你通常可以调用toString()(或者作为一个快捷方式连接一个空字符串+ '')来得到类似<Sandbox.ApplicationController:ember288>的东西
【讨论】: