console.log()
特にと組み合わせてよく使いEmber.inspect()
ます。しかし、私が見逃していることが1つあります。
オブジェクトのタイプ(クラス)を確認するにはどうすればよいですか?
例:<Sandbox.ApplicationController:ember288>
検査するときのようなものを取得しEmber.get("controller")
ますか?
console.log()
特にと組み合わせてよく使いEmber.inspect()
ます。しかし、私が見逃していることが1つあります。
オブジェクトのタイプ(クラス)を確認するにはどうすればよいですか?
例:<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>
もう1つの便利な機能(クロム)はdir
コマンドです。
dir(App.User)
これにより、名前だけでなく、完全なオブジェクト情報が得られます。
ここで提案されているこれらの回答の一部は、開発でのみ機能することに注意してください。コードが本番環境に入ると、これらのメソッド/クラス名のほとんどが縮小されます。
import Model from '@ember-data/model';
export default class Animal extends Model {
// ...
}
だから開発中:
const model = this.store.createRecord('animal');
model.constructor.name // returns Animal
生産中:
const model = this.store.createRecord('animal');
model.constructor.name // returns 'i' (or any other single letter).
これを回避するには、constructor.toString()
const model = this.store.createRecord('animal');
model.constructor.toString() // returns 'model:animal'