2013-08-15 3 views
8

Czy jest jakiś sposób na uzyskanie tego, co naprawdę zawiera obiekt Ember.js w konsoli JavaScript. Jeśli nie console.log(this), dostaniesz prawie taką samą strukturę danych dla prawie każdego obiektu, coś takiego:Jak sprawdzić obiekty Ember.js w konsoli?

console.log of an Ember.js controller

To nie jest bardzo pomocne, a to daje pojęcia co atrybuty są właściwie ustawiony na obiekcie .

Do tej pory jedynym sposobem, w jaki udało mi się przeprowadzić debugowanie, było wypróbowanie pod numerem console.log(this.get('whatever')) jakiejkolwiek możliwej nazwy, ale trudno jest odgadnąć, co jest dostępne.

Czy istnieje sposób na głębsze zagłębianie się w dane obiektu?

Odpowiedz

24

Ember udostępnia kilka metod, aby pomóc debugowania obiekt z konsoli:

Object.toString drukuje tożsamości dowolnego obiektu ember

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

Ember.inspect konwertuje obiekt do użytecznego Opis string

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 powrót wszystkich klawiszy zdefiniowanych na obiekcie lub hash

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

Dzięki, że sprawia, że ​​nieco łatwiej zobaczyć, co się dzieje pod kołdrą :) – mikl

+0

"Hansi Hinterseer" LOL – splattne

5

Jest także przedmiotem App.__container__ które, jeśli wiesz, co nazwać obiektami są zarejestrowane do aplikacji ember z, będzie można chwycić dowolny obiekt, którego potrzebujesz podczas debugowania z dowolnego środowiska.

Kilka przykładów są

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