2012-10-10 18 views
6

मेरे पास एक एम्बर ऐप है और आउटलेट की अवधारणा है और आउटलेट को कनेक्ट करना ठीक है, मुझे लगता है। मुझे समझ में नहीं आता है कि पागल घोंसले के बिना किसी एक के अंदर एक से अधिक दृश्य/नियंत्रक दृश्य कैसे प्राप्त करेंएम्बर.जेएस राउटर ऐप आर्किटेक्चर - एकाधिक नेस्टेड व्यू/कंट्रोलर जोड़े कैसे हैं

मान लीजिए कि मैं आईसीएलएड क्लोन तैयार कर रहा हूं जहां मेरे पास ईमेल कार्यक्षमता और फोटो गैलरी कार्यक्षमता है। अब अगर मैं की तरह

*********************************************************** 
* INBOX LIST  ** COMPOSE OR VIEW MESSAGE    * 
*    **          * 
*    **          * 
*    **          * 
*    **          * 
* CONTACTS LIST **          * 
*    **          * 
*    **          * 
*    **          * 
*    **          * 
*********************************************************** 

तरह से है कि मैं की तरह

EmailController/View 
|-- SplitViewController/View 
    |-- InboxListController/View 
    |-- ContactsListController/View 
    |-- ComposeMessageController/View 
    |-- ReadMessageController/View 

यह कुछ होगा डिजाइन करने के लिए मैं कहां से SPLITVIEW के स्तर तक गर्म स्वैप इन या उन्हें हटा सकते हैं चाहते हो जाएगा कुछ हासिल करना चाहता था पूरी तरह से, लेकिन मुझे केवल एक outlet अनुमति के साथ ऐसा करने का एक अच्छा तरीका नहीं दिख रहा है। यह मुझे उन चीज़ों के अंदर अगली चीज़ों को मजबूर करेगा जो घोंसला नहीं होना चाहिए। एकल आउटलेट दृष्टिकोण का उपयोग करना, मेरी संरचना अधिक की तरह

EmailController/View 
|-- SplitViewController/View 
    |-- InboxListController/View 
     |-- ContactsListController/View 
      |-- ComposeMessageController/View 
       |-- ReadMessageController/View 

मैं एक स्थापत्य शैली है कि Ember.js/रूटर है कि अभी भी और अधिक जटिल घोंसले के लिए अनुमति देता है के साथ फिट बैठता है कैसे पता होगा विचार करेंगे?

उत्तर

8

क्या आप जानते हैं कि आप आउटलेट का नाम दे सकते हैं? उदाहरण के लिए, SPLITVIEW टेम्पलेट में, आप एक {{आउटलेट inboxListView}} एक {{आउटलेट contactsListView}} आदि ... जब आप अपने connectOutlets सामान करते हैं, आप कर सकते हैं हो सकता है इस तरह:

splitViewController.connectOutlet({name: 'inboxList', outletName: 'inboxListView'}) 
splitViewController.connectOutlet({name: 'contactsList', outletName: 'contactsListView'}) 

और तो ...

+0

तो यदि आप स्प्लिट व्यू में विभिन्न विचारों/मॉडल ऑब्जेक्ट्स के लिए अलग-अलग नामांकित आउटलेट का उपयोग कर रहे हैं, तो आपका राउटर डेटा के साथ नेस्टेड आउटलेट भरने जैसा दिखता है? splitViewController.connectOutlet ({name: 'inboxList', आउटलेटनाम: 'inboxList'}, router.get ('store')। findAll (App.Inbox)) और splitViewController.connectOutlet ({name: 'contactList', आउटलेटनाम: 'contactList'}, router.get ('store')। findAll (App.Contact)))? –

+0

इस हां की तरह smth, लेकिन संदर्भ हैश में डाल देना है। '{name: 'contactList', आउटलेटनाम: 'संपर्क सूची', संदर्भ: router.get ('store')। findAll (App.Contact)}) 'http://emberjs.com/api/classes/Ember.ControllerMixin देखें अधिक जानकारी के लिए .html # method_connectOutlet –

+0

@ sly7_7 यह अच्छी खबर है! धन्यवाद :) – wmarbut