2013-06-06 7 views
5

में नियंत्रक से संपत्ति प्राप्त करना मेरे पास एक मॉडल पर एक गणना की गई संपत्ति है और गणना करने के लिए कि मुझे नियंत्रक से एक संपत्ति की आवश्यकता है (मॉडल को नियंत्रित करने वाला कोई नहीं)। मुझे पता है कि needs: है लेकिन यह केवल
पर एक नियंत्रक स्तर पर है।
मॉडल के प्रबंधन के अलावा एम्बर में एक नियंत्रक से मुझे संपत्ति कैसे मिल सकती है?एम्बर मॉडल

मैं उस व्यक्ति की तरह कुछ प्रारूपण करने की कोशिश कर रहा हूं [[इस सवाल से पूछा] [1] लेकिन मैं वहां जो सुझाव दिया गया वह सफल नहीं हुआ।
तो मैं एक गणना की गई संपत्ति के साथ मॉडल पर स्वरूपण करने का प्रयास करता हूं, लेकिन उस संपत्ति की गणना करने के लिए मुझे नियंत्रक से दूसरी संपत्ति की आवश्यकता है।

किसी भी मदद की बहुत सराहना की जाती है! धन्यवाद!

नोट: मैं मॉडल का प्रबंधन करने के लिए एम्बरडाटा का उपयोग कर रहा हूं।

संपादित करें:
आदेश में है कि मैं क्या मैं एक उदाहरण है कि एक सामान्य तरह से समस्या
से पता चलता की स्थापना की है करने के लिए कोशिश कर रहा हूँ स्पष्ट करने के लिए: उदाहरण के आवेदन आप इनपुट नंबर, उन्हें स्टोर की सुविधा देता है ,
और उन्हें एक सूची में दिखाएं। आप एक "रूपांतरण कारक" भी इनपुट कर सकते हैं जो मॉडल डेटा को स्वयं नहीं बदलता है लेकिन टेम्पलेट पर प्रेजेंटेशन को बदलता है। मान लें, आप मॉडल 2 को इनपुट करते हैं, 2 मॉडल पर सहेजे जाते हैं, लेकिन जब सूची में दिखाया जाता है तो इसे आपके द्वारा पहले दर्ज किए गए रूपांतरण कारक के साथ "स्वरूपित" हो जाता है और गणना मूल्य टेम्पलेट में दिखाया जाता है। समस्या यह है कि जिस मूल्य के साथ मैं प्रारूप बनाना चाहता हूं उसे एक अलग नियंत्रक पर संग्रहीत किया जाता है। 1 दृष्टिकोण

  • #: यहाँ क्या मैं अब तक की कोशिश की है है ArrayController पर
    परिकलित संपत्ति - नियंत्रक में needs: का उपयोग कर पार और मूल्य
    प्राप्त करने के लिए ->jsfiddle
    समस्याएं मैंने सामना किया है:
    ऐरे कंट्रोलर तोड़ने लगता है और टेम्पलेट प्रस्तुत करता है जैसे कि कोई संग्रहित रिकॉर्ड नहीं है (नोट: उदाहरण स्थानीय संग्रहण का उपयोग करता है, इसलिए कुछ रिकॉर्ड बनाएं और गणना को असम्बद्ध करें एरे कंट्रोलर पर डी प्रॉपर्टी और आप देखेंगे कि यह मूल रूप से अपेक्षित रूप से काम करता है और आपके द्वारा दर्ज किए गए रिकॉर्ड दिखाता है)।

  • # 2 दृष्टिकोण:
    परिकलित मॉडल पर ही संपत्ति
    ->jsfiddle
    समस्याएं मैं सामना करना पड़ा:
    मुझे नहीं पता कि मैं कैसे जबकि beeing एक नियंत्रक से एक संपत्ति प्राप्त कर सकते हैं
    Handlebars हेल्पर और: मॉडल

  • # 3 दृष्टिकोण के अंदर नियंत्रक पर
    1) अन्य नियंत्रक
    2 से प्रश्न में मूल्य प्राप्त करने के लिए नियंत्रक (जो मॉडल को संभालता है) पर एक गणना की गई संपत्ति को परिभाषित करें 2) एक हैंडलबार सहायक बनाएं और मॉडल और मूल्य से मूल्य में पास करें नियंत्रक से और गणना मूल्य
    -> jsfiddle (आप टिप्पणियों में तीसरे jsfiddle के लिए लिंक पा सकते हैं क्योंकि मेरे पास अभी तक पर्याप्त प्रतिष्ठा अंक नहीं हैं)।
    समस्याएं मुझे मिली हैं:
    स्वरूपित संख्या को प्रदर्शित करने के बजाय मुझे प्रस्तुत टेम्पलेट में प्रत्येक मान पर "NaN" मिलता है।

अगर किसी को यह पता चलता है कि इसे कैसे हल किया जाए या मुझे सही दिशा में इंगित किया जाए तो यह बहुत अच्छा होगा। आपकी मदद वास्तव में सराहना की है! आपके समय के लिए धन्यवाद!

+0

कर सकते हैं आप सेटअप क्या आप पहले से ही की कोशिश की है के साथ jsfiddle के jsbin? – intuitivepixel

+0

3 # दृष्टिकोण के लिए लिंक करने में मदद करना बहुत आसान होगा: [jsfiddle] (http://jsfiddle.net/Nairam/kYkdZ/) – Nairam

उत्तर

1

मुझे यह काम मिल गया: मैंने # 3 दृष्टिकोण (मेरे प्रश्न में उल्लिखित) का उपयोग किया है।

  • मुझे लगता है कि टेम्पलेट जहाँ मैं स्वरूपित मान
  • मैं एक हैंडल सहायक converted कहा जाता है कि होगा बनाया प्रदर्शित करना चाहते हैं के लिए बाध्य है नियंत्रक करने के लिए अन्य नियंत्रक से मूल्य प्रॉक्सी के लिए एक गणना संपत्ति का उपयोग कर रहा स्वरूपण करें। हैंडलबार्स सहायक दो पैरामीटर स्वीकार करता है: वह मान जो मैं नियंत्रक से प्रॉक्सी करता हूं (जो बदले में एक अलग नियंत्रक से आता है) और मॉडल से मूल्य।

जो चीज पहले काम नहीं करती थी वह था कि सहायक का उपयोग करते समय टेम्पलेट में मुझे स्वरूपित आउटपुट के बजाय सभी वस्तुओं पर "NaN" मिलेगा।

{{#each controller}} 
    <tr> 
     <td>{{converted amount conversionFactor}}</td> 
    </tr> 
    {{else}} 
    <tr> 
     <td>No amounts here yet</td> 
    </tr> 
    {{/each}} 

मैं इसे इस के लिए बदल दिया:
क्या समस्या हल हो कि बजाय साथ टेम्पलेट में मॉडल के माध्यम से lopping का था

{{#each item in controller}} 
    <tr> 
     <td>{{converted item.amount conversionFactor}}</td> 
    </tr> 
    {{else}} 
    <tr> 
     <td>No amounts here yet</td> 
    </tr> 
    {{/each}} 

और यह पूरी तरह से काम करता है!

यहाँ काम कर jsfiddle

10

मॉडल से किसी भी नियंत्रक तक पहुंचने से वास्तव में एम्बर के वास्तुकला के अनाज के खिलाफ जा रहा है। अधिकांश स्वरूपण समस्याओं को हैंडलबार सहायक के साथ सबसे अच्छा हल किया जाता है, लेकिन यदि आपको नियंत्रक और मॉडल से डेटा को वास्तव में गंभीर तरीके से संयोजित करने की आवश्यकता है, तो आप शायद नियंत्रक पर एक गणना की गई संपत्ति चाहते हैं।

क्या आप जो करने की कोशिश कर रहे हैं उसका एक ठोस उदाहरण दे सकते हैं? इससे सही समाधान का सुझाव देना बहुत आसान हो जाएगा।

+0

मैंने अपने प्रश्न के लिए और विवरण जोड़े और कुछ jsfiddles जोड़े। – Nairam

संबंधित मुद्दे