特にconsole.log()
と組み合わせて、Ember.inspect()
を頻繁に使用しています。しかし、私が見逃していることが1つあります。
オブジェクト(クラス)のタイプを確認するにはどうすればよいですか?
例:Ember.get("controller")
を検査するときに<Sandbox.ApplicationController:ember288>
のようなものを取得しますか?
モデル名だけが必要な場合(たとえば、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の)もう1つの便利な機能は、dir
コマンドです。
dir(App.User)
これにより、名前だけでなく、完全なオブジェクト情報が得られます。