2013-08-15 17 views
8

Có cách nào để xem đối tượng Ember.js thực sự có trong bảng điều khiển JavaScript không. Nếu bạn làm console.log(this), bạn sẽ nhận được hầu hết các cấu trúc dữ liệu tương tự cho hầu hết các đối tượng, một cái gì đó như thế này:Cách kiểm tra các đối tượng Ember.js trong bảng điều khiển?

console.log of an Ember.js controller

Đó không phải là siêu hữu ích, và nó mang lại cho bạn không có ý tưởng gì thuộc tính đang thực sự đặt trên đối tượng .

Cho đến nay, cách duy nhất tôi tìm thấy để gỡ lỗi là thử và console.log(this.get('whatever')) cho bất kỳ tên có thể tưởng tượng nào, nhưng thật khó để đoán những gì có sẵn.

Có cách nào để đào sâu hơn vào dữ liệu của đối tượng không?

Trả lời

24

Ember cung cấp một số phương pháp để giúp gỡ một đối tượng từ giao diện điều khiển:

Object.toString in danh tính của bất kỳ đối tượng ember

App.Person = Em.Object.extend() 
person = App.Person.create() 
person.toString() 
//=> "<App.Person:ember1024>" 

Ember.inspect chuyển đổi đối tượng thành một mô tả chuỗi hữu ích

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} 

Ember.keys trả về tất cả các phím xác định trên một đối tượng hoặc băm

console.log(Ember.keys(this)); 
+0

Cảm ơn, mà làm cho nó dễ dàng hơn một chút để xem những gì đang xảy ra dưới lớp chăn :) – mikl

+0

"Hansi Hinterseer" LOL – splattne

5

Ngoài ra còn có các đối tượng App.__container__ đó, nếu bạn biết những gì tên đối tượng của bạn đã được đăng ký để ứng dụng ember với, sẽ cho phép bạn lấy bất kỳ đối tượng bạn cần trong khi gỡ lỗi từ bất kỳ môi trường nào.

Một vài ví dụ là

App.__container__.lookup('store:main') # Gets the store 
App.__container__.lookup('controller:blog') # Gets the blog controller