2012-02-14 7 views
17

यह शायद आसान से परे है, लेकिन मैं एक मुश्किल समय कैसे माता पिता विचारों के गुणों का उपयोग करने के यह पता लगाने की आ रही है: this.get('parentView')एम्बर में माता-पिता की संपत्ति कैसे प्राप्त करें?

foo का मूल्य प्राप्त करने के लिए:

App.ParentView = Ember.View.extend({ 
    foo: 'bar', 

    child_view: Ember.View.extend({ 

    init: function(){ 
     // get the value of App.ParentView.foo 
     // ??? 
    } 
    }) 

}); 
+0

कृपया ध्यान दें कि आदमी में है वाई मामलों को अभिभावक दृश्य तक पहुंचने के लिए कोड गंध का संकेत है। हालांकि, यहां विवरण जानने के बिना और कहना मुश्किल है। –

उत्तर

30

दृश्य प्राप्त करने के this.get('parentView.foo')

+1

ऐसी स्थिति को देखते हुए जहां आप हैंडलबार में मूल दृश्य तक पहुंचना चाहते हैं, आप '{{view.parentView.foo}}' का उपयोग कर सकते हैं। यानी: '{{#view Wrapper}}

{{view.parentView.foo}}
{{/ view}}' – chuckg

+2

न्यूबीज हेड अप! यहां उपरोक्त कोड ऐप.parentView है जो भ्रामक है। आपके द्वारा दिए गए नाम के बावजूद आपको हमेशा ("parentView") प्राप्त करना चाहिए। – Nico

+0

इसके लिए धन्यवाद। बस मुझे बहुत समय बचाया। – DexterW

3

टॉम सही है। मैं भी इस का प्रदर्शन और विशेष contentView संपत्ति है, जो स्थिति के इस प्रकार में उपयोगी हो सकता भी वर्णन करने के लिए एक जे एस फिडल बनाया: http://jsfiddle.net/rSLQK/2/

4

एंबर में पहले 1.0.pre आप भी getPath विधि का उपयोग कर सकता है, प्राप्त की जंजीरों के बजाय(), और अधिक संक्षिप्त (और आम तौर पर सुरक्षित) कोड के लिए:

this.getPath("parentView.foo"); 

क्या एंबर 1.0.pre में अच्छा है कि get() विधि अब, रास्तों का समर्थन करता है तो आप लिख सकते हैं

this.get("parentView.foo"); 
संबंधित मुद्दे