web-dev-qa-db-fra.com

Inspecter Ember.js: obtenir le type d'un objet (classe)?

J'utilise beaucoup console.log(), surtout en combinaison avec Ember.inspect(). Mais il me manque une chose:

Comment connaître le type d'un objet (classe)?

Par exemple: obtenir quelque chose comme <Sandbox.ApplicationController:ember288> Lors de l'inspection de Ember.get("controller")?

36
kraftwer1

Si vous voulez juste le nom du modèle (par exemple app/models/comment.js a le nom de modèle comment), vous pouvez utiliser thing.constructor.modelName.

Par exemple:

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

Je comprends que vous recherchez une chaîne à des fins de débogage, mais je suis à l'origine venu à cette question en voulant savoir spécifiquement comment obtenir le type de l'objet, pas une chaîne décrivant l'objet.

L'utilisation du constructeur de propriété Javascript intégré produira la classe utilisée pour construire l'instance. Par exemple, vous pourriez faire:

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

Si vous obtenez Class, vous pouvez généralement appeler toString() (ou en tant que raccourci concaténer une chaîne vide + '') pour obtenir quelque chose comme <Sandbox.ApplicationController:ember288>

18
Luke Melia

Une autre fonctionnalité utile (en chrome) est la commande dir.

dir(App.User)

Cela vous donnera les informations complètes sur l'objet, plutôt que juste le nom.

1
Gevious