2013-08-15 15 views
8

Bir Ember.js nesnesinin JavaScript konsolunda gerçekten neleri içerdiğini anlamanın bir yolu var mı.Konsolda Ember.js nesneleri nasıl denetlenir?

console.log of an Ember.js controller

süper yararlı değil O, ve bu size aslında nesne üzerinde ayarlanır öznitelikleri ne olursa fikir verir: Eğer console.log(this) yaparsanız, böyle neredeyse aynı veri hemen her nesne için bir yapı, bir şeyler alacak .

Şimdiye kadar, hata ayıklamayı bulduğum tek yol, akla gelebilecek herhangi bir ad için console.log(this.get('whatever'))'u denemek ve mevcut olanı tahmin etmek zor.

Nesnenin verilerinin daha derinine inmek için bir yolu var mı?

cevap

24

Kor konsolundan bir nesne hata ayıklama yardımcı olmak için çeşitli yöntemler sağlar:

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

Ember.inspect yararlı bir dize açıklaması içine nesneyi dönüştürür herhangi kor nesnenin

Object.toString baskılar kimliğini

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 döner bir nesne veya karma üzerinde tanımlı tuşlar her

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

Teşekkür vardır :) – mikl

+0

"Hansi Hinterseer" LOL – splattne

5

da App.__container__ nesne yok ki, siz, nesneler ile kor uygulamasına kayıtlı isim herhangi kapmak sağlayacak biliyorum eğer Herhangi bir ortamdan hata ayıklama yaparken ihtiyacınız olan nesne.

Birkaç örnek kapakları altında neler olduğunu görmek için biraz daha kolay yapar ...

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