2013-08-15 6 views
8

क्या कोई एम्बर.जेएस ऑब्जेक्ट वास्तव में जावास्क्रिप्ट कंसोल में शामिल होने का कोई तरीका है। आप console.log(this) करते हैं, तो आप इस तरह के लगभग किसी भी वस्तु के लिए लगभग एक ही डेटा संरचना, कुछ मिल जाएगा:कंसोल में Ember.js ऑब्जेक्ट का निरीक्षण कैसे करें?

console.log of an Ember.js controller

कि सुपर मददगार नहीं है, और यह तुम्हें कुछ पता नहीं विशेषताओं क्या वास्तव में वस्तु पर सेट कर रहे हैं देता है ।

अभी तक, मुझे डीबग करने का एकमात्र तरीका किसी भी कल्पनीय नाम के लिए कोशिश करना और console.log(this.get('whatever')) है, लेकिन यह अनुमान लगाना मुश्किल है कि क्या उपलब्ध है।

क्या ऑब्जेक्ट के डेटा में गहराई से खोदने का कोई तरीका है?

उत्तर

24

एंबर कंसोल से एक वस्तु डिबग मदद करने के लिए कई तरीके प्रदान करता है:

Object.toString प्रिंट किसी भी एंबर वस्तु की पहचान

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

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} 

Ember.keys रिटर्न कुंजी एक वस्तु या हैश पर परिभाषित के सभी

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

धन्यवाद, यह थोड़ा आसान देखने के लिए कवर के तहत हो रहा है कि बनाता है :) – mikl

+0

"हांसी हिंटर्सियर" एलओएल – splattne

5

वहाँ भी App.__container__ वस्तु है जो, अगर आप जानते हैं, क्या नाम अपने वस्तुओं के साथ एंबर एप्लिकेशन के लिए पंजीकृत हैं आप किसी भी हड़पने के लिए अनुमति देगा किसी भी पर्यावरण से डीबगिंग करते समय आपको ऑब्जेक्ट की आवश्यकता होती है।

उदाहरण के एक जोड़े हैं

App.__container__.lookup('store:main') # Gets the store 
App.__container__.lookup('controller:blog') # Gets the blog controller 
संबंधित मुद्दे