检查Ember.js:获取对象的类型(Class)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查Ember.js:获取对象的类型(Class)?相关的知识,希望对你有一定的参考价值。

我经常使用console.log(),特别是与Ember.inspect()结合使用。但是有一件事我想念:

如何找出对象的类型(Class)?

例如:在检查<Sandbox.ApplicationController:ember288>时得到类似Ember.get("controller")的东西?

答案

如果您只想要模型名称(例如app/models/comment.js的型号名称为comment),您可以使用thing.constructor.modelName

例如:

var aComment = this.get('store').createRecord('comment');
aComment.get('constructor.modelName') // => 'comment'
另一答案

我知道你正在寻找一个字符串用于调试目的,但我最初想要知道如何获取对象的类型,而不是描述对象的字符串。

使用内置的javascript属性构造函数将生成用于构造实例的类。例如,您可以这样做:

person = App.Person.create();
person.constructor // returns App.Person
person.constructor.toString() // return "App.Person"
另一答案

如果你得到Class,你通常可以调用toString()(或作为快捷方式连接空字符串+ '')来获得像<Sandbox.ApplicationController:ember288>这样的东西

另一答案

另一个有用的功能(在chrome中)是dir命令。

dir(App.User)

这将为您提供完整的对象信息,而不仅仅是名称。

以上是关于检查Ember.js:获取对象的类型(Class)?的主要内容,如果未能解决你的问题,请参考以下文章

Mirage 的简单 Ember 数据问题(错误:遇到未定义类型的资源对象)

使用 Ember.js 按模型类型/对象值选择视图模板

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

如何检查加载了哪个版本的Ember.js?

Ember.js 如何获取需要嵌套的控制器名称

Ember.js 使用路由器架构获取父路由的控制器