web-dev-qa-db-ja.com

Ember.jsの検査:オブジェクト(クラス)のタイプを取得しますか?

特にconsole.log()と組み合わせて、Ember.inspect()を頻繁に使用しています。しかし、私が見逃していることが1つあります。

オブジェクト(クラス)のタイプを確認するにはどうすればよいですか?

例:Ember.get("controller")を検査するときに<Sandbox.ApplicationController:ember288>のようなものを取得しますか?

36
kraftwer1

モデル名だけが必要な場合(たとえば、app/models/comment.jsのモデル名はcomment)です。thing.constructor.modelName

例えば:

var aComment = this.get('store').createRecord('comment');
aComment.get('constructor.modelName') // => 'comment'
76
Kerrick

デバッグの目的で文字列を探しているとのことでしたが、私はもともと、オブジェクトを説明する文字列ではなく、オブジェクトのタイプを取得する方法を具体的に知りたいと思っていました。

組み込みのJavaScriptプロパティコンストラクターを使用すると、インスタンスの構築に使用されるクラスが生成されます。たとえば、次のようにできます。

person = App.Person.create();
person.constructor // returns App.Person
person.constructor.toString() // return "App.Person"
24
David Monagle

Classを取得した場合、通常はtoString()を呼び出して(またはショートカットとして空の文字列+ ''を連結して)、<Sandbox.ApplicationController:ember288>のようなものを取得できます。

18
Luke Melia

(Chromeの)もう1つの便利な機能は、dirコマンドです。

dir(App.User)

これにより、名前だけでなく、完全なオブジェクト情報が得られます。

1
Gevious