有没有办法在JavaScript控制台中获得Ember.js对象真正包含的内容.如果这样做console.log(this),几乎所有对象都将获得几乎相同的数据结构,如下所示:

这不是非常有用,它不会让你知道在对象上实际设置了什么属性.
到目前为止,我发现调试的唯一方法是尝试console.log(this.get('whatever'))任何可以想象的名称,但很难猜出可用的名称.
有没有办法深入挖掘对象的数据?
Mik*_*tti 25
Ember提供了几种方法来帮助从控制台调试对象:
Object.toString输出任何ember对象的标识
App.Person = Em.Object.extend()
person = App.Person.create()
person.toString()
//=> "<App.Person:ember1024>"
Run Code Online (Sandbox Code Playgroud)
Ember.inspect将对象转换为有用的字符串描述
var object = Ember.Object.create({
firstName: 'Hansi',
lastName: 'Hinterseer',
age: 58
});
console.log( Ember.inspect(object) );
// {__ember1331067974108_meta: [object Object] , firstName: Hansi , lastName: Hinterseer , age: 58}
Run Code Online (Sandbox Code Playgroud)
Ember.keys返回在对象或散列上定义的所有键
console.log(Ember.keys(this));
Run Code Online (Sandbox Code Playgroud)
还有一个App.__container__对象,如果你知道你的对象注册到ember应用程序的名称,将允许你从任何环境调试时获取你需要的任何对象.
有几个例子
App.__container__.lookup('store:main') # Gets the store
App.__container__.lookup('controller:blog') # Gets the blog controller
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9333 次 |
| 最近记录: |