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")
?
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'
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"
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>
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.