2014-05-21 4 views
11

मैं अपने प्रोजेक्ट में मोडल बनाने के लिए कोणीय यूई मोडल का उपयोग कर रहा हूं।कोणीय ui मोडल मूल दायरे को संदर्भित नहीं कर सकता

सबकुछ ठीक काम करता है जब तक कि मुझे मूल दायरे में परिवर्तनीय को संदर्भित करने की आवश्यकता न हो। plunker code

ऐसा लगता है जैसे मोडल अभिभावक के दायरे तक नहीं पहुंच सकता है। क्या इस पर काबू पाने के लिए वैसे भी है?

उत्तर

22

कोणीय यूआई के मॉडल (See the documentation here) डिफ़ॉल्ट रूप से $rootScope का उपयोग करते हैं।

जब आप मोडल खोलते हैं तो आप कस्टम स्कोप के साथ scope पैरामीटर पास कर सकते हैं - उदा। scope: $scope यदि आप मूल दायरे को पारित करना चाहते हैं। मोडल नियंत्रक उस दायरे से उप-स्कोप बनाएगा, इसलिए आप केवल अपने प्रारंभिक मानों के लिए इसका उपयोग कर पाएंगे।

+1

आपके द्वारा प्रदान किया गया दस्तावेज़ मौजूद नहीं है, क्या आप एक नया प्रदान कर सकते हैं? – fuyi

+0

स्पष्ट रूप से आप उनके दस्तावेज़ों को एंकर-लिंक नहीं कर सकते हैं। दस्तावेज़ीकरण पर जाएं और * मोडल * शीर्षक ढूंढें। – lyschoening

+0

जब माता-पिता के दायरे के मूल्य बदलते हैं तो बच्चे के दायरे को गतिशील रूप से अपडेट करने का समाधान क्या होगा? यह मेरे लिए वास्तव में महत्वपूर्ण है क्योंकि मेरे पास डेटा मतदान कार्यक्रम है जो मेरे मॉडलों में दिखाए गए डेटा को अपडेट करता है और मैं चाहता हूं कि वे गतिशील रूप से अपडेट करें। धन्यवाद! – tpartee

1

आप पैरेंट div में एक आईडी जोड़ सकते हैं और उसके दायरे का उपयोग कर सकते हैं।

<div id="outerdiv" ng-controller="OuterCtrl"> 
<h2>Outer Controller</h2> 
<input type="text" ng-model="checkBind"> 
<p>Value Of checkbind: {{checkBind}}</p> 

और की स्थापना के लिए एक "नकली" नियंत्रक

//init 
$scope.checkBind = angular.element(document.getElementById('outerdiv')).scope().checkBind; 

    $scope.$watch('checkBind', function (newValue, oldValue) { 
//update parent 
    angular.element(document.getElementById('outerdiv')).scope().checkBind = $scope.checkBind; 
    }); 

भीतर बाध्यकारी देखें http://plnkr.co/edit/u6DuoHJmOctFLFhvqCME?p=preview

13

आप अपने $ मोडल विकल्पों में माता पिता के दायरे का उल्लेख करने की आवश्यकता होगी। Angular documentation

Corrected Plunker Version

नीचे भी क्या मैं इसे काम करने के लिए जोड़ा का एक कोड का टुकड़ा है।

var modalInstance = $modal.open({ 
    templateUrl: 'myModalContent.html', 
    controller: ModalInstanceCtrl, 
    scope:$scope, //Refer to parent scope here 
    resolve: { 
    items: function() { 
     return $scope.items; 
    } 
    } 
}); 
संबंधित मुद्दे