2012-07-03 16 views
16

मेरे पास एक पृष्ठ है जिसमें 2 नियंत्रक हैं: एक जो तथाकथित 'ऐप्स' की एक सूची प्रबंधित करता है, और दूसरा जो नया कोणीय टेम्पलेट अपने div तत्व के आंतरिक HTML में रखना है।पृष्ठ के भीतर लोड कोणीय जेएस टेम्पलेट, गतिशील रूप से

<div ng-controller="appList"></div> 
<div ng-controller="appPane"> Dynamic content should be loaded here! </div> 

मैं मानक {{अभिव्यक्ति}} बाइंडिंग का उपयोग कर की कोशिश की है, लेकिन वे एचटीएमएल साथ काम नहीं करते, मैं भी एनजी-बाँध एचटीएम्एल असुरक्षित निर्देश की कोशिश की है (एप्लिकेशन की है कि innerHTML बाइंडिंग अनुरोध की वापसी) लेकिन नियंत्रकों को इस नए कोड में निष्पादित नहीं किया गया है।

समस्या यह प्रतीत होती है कि बाध्यकारी का उपयोग करके, कोणीय एक कोणीय ऐप के रूप में उपयोग करने के लिए एचटीएमएल की सामग्री को फिर से पार्स नहीं कर रहा है। डायनामिक सामग्री को पार्स करने के लिए इसे प्राप्त करने के बारे में कोई भी विचार?

+1

क्या 'ऐप्स' अलग कोणीय ऐप्स हैं (प्रत्येक में 'ng-app' घोषणा है?) या एक ही ऐप के लिए अलग-अलग नियंत्रक/दृश्य हैं? यदि अलग-अलग नियंत्रक/दृश्य हैं, तो मैं अलग-अलग विचारों को प्रबंधित करने के लिए ऐपलिस्ट को अपने नेविगेशन के रूप में उपयोग करूंगा और '$ रूटप्रदाता '(http://docs.angularjs.org/api/ng.$routeProvider) सेटअप करूंगा। –

+0

शायद मैं कोशिश कर रहा था उससे बेहतर समाधान, लेकिन मैं अभी भी कोणीय के लिए नया हूं, इसलिए मैं इसे आजमाउंगा। धन्यवाद। – Zoey

उत्तर

4

uiRouter मॉड्यूल (AngularUI परियोजना से) पर एक नजर डालें। यह राज्यों की अवधारणा को जोड़ता है, जो मार्गों के समान ही हैं, लेकिन अन्य उपहारों के साथ, जैसे कि उन्हें घोंसला करने की क्षमता। उदाहरण के लिए:

$stateProvider 
    .state('myState', { 
     url: '/mystate', 
     templateUrl: '...', 
     controller: 'MyCtrl' 
    }) 
    .state('myState.substate', { 
     url: '/{substate}', 
     templateUrl: '...', 
     controller: 'MySubCtrl' 
    }); 

MySubCtrl जब भी आप /mystate/something के पास जाकर आप उपयोग कर सकते हैं कि एक पैरामीटर के रूप "कुछ" ($stateParams देखें) सक्रिय हो जाएगा। आप किसी भी स्तर पर राज्यों को घोंसला कर सकते हैं।

+0

यह वास्तव में उपयोगी लगता है! ऐसा होने के नाते मेरा जवाब कोणीय के शुरुआती विकास से था, यह अस्तित्व में नहीं था- दूसरों को यह टिप्पणी करने में संकोच नहीं होता है कि यह मामला नहीं होना चाहिए, लेकिन मुझे लगता है कि यह अब सही जवाब है। स्वीकार किए जाते हैं। – Zoey

+1

मुझे खुशी है कि इन चीजों (एंगुलरजेएस पारिस्थितिक तंत्र) वे जिस तरह से विकसित हो रहे हैं। –

+0

रिकॉर्ड के लिए, मैंने अपनी परियोजनाओं में इस समाधान की कोशिश की है और यह बेहद उपयोगी है। कुछ मुद्दे हैं, जैसे कि किसी भी प्रकार के मार्गों के लिए नेविगेशन त्रुटियों में जिसके परिणामस्वरूप त्रुटियां होती हैं, लेकिन मैं शर्त लगा रहा हूं कि उनके मध्यम-गहराई से प्रलेखन में छुपा हुआ यह पता लगाने का माध्यम है कि जब कोई मार्ग मौजूद नहीं होता है तो इसे संभाला जा सकता है। एक सामान्य मामले परिदृश्य के रूप में, मैं मार्गों का उपयोग करने का प्रयास करने वाले किसी भी व्यक्ति के लिए इस समाधान की अनुशंसा करता हूं, और मैं आंगुलर से आधिकारिक मार्ग प्रदाता को छोड़ने की अनुशंसा करता हूं, क्योंकि यह एक बहुत अधिक शक्तिशाली है। – Zoey

25

ऐसा प्रतीत होता है कि $ संकलन सेवा, जब आप उन तत्वों को खिलाते हैं जिन्हें आप अपने वर्तमान दायरे के साथ पुनः संयोजित करना चाहते हैं, तो मैं जो चाहता हूं वह करता है। मेरे स्रोत से

उदाहरण:

var appPane = $('#AppPane');//JQuery request for the app pane element. 
appPane.html(data);//The dynamically loaded data 
$compile(appPane.contents())($scope);//Tells Angular to recompile the contents of the app pane. 

यह किसी मेरी समस्या का सामना कर मदद करनी चाहिए, मुझे आशा है कि।

6

$routes और एनजेव्यूज में कोणीय में देखें।

यहाँ एक बहुत ही बुनियादी उदाहरण है:

http://jsfiddle.net/pXpja/3/

+0

यह 'आधिकारिक' विकल्प है, लेकिन वर्तमान में परिस्थितियों में काम नहीं करता है क्योंकि मेरी मूल समस्या में नियंत्रकों की एक स्तरित संरचना की आवश्यकता होती है। – Zoey