यदि आपका HTML नीचे है तो आप ऐसा कुछ कर सकते हैं:
<div ng-controller="ParentCtrl">
<div ng-controller="ChildCtrl">
</div>
</div>
फिर आप निम्नानुसार मूल क्षेत्र तक पहुँच सकते हैं
function ParentCtrl($scope) {
$scope.cities = ["NY", "Amsterdam", "Barcelona"];
}
function ChildCtrl($scope) {
$scope.parentcities = $scope.$parent.cities;
}
यदि आप अपने दृष्टिकोण से एक माता-पिता नियंत्रक का उपयोग करना चाहते हैं तो आपको कुछ इस तरह करना होगा:
<div ng-controller="xyzController as vm">
{{$parent.property}}
</div>
JsFiddle देखें: http://jsfiddle.net/2r728/
अपडेट करें
वास्तव में चूंकि आपने cities
मूल नियंत्रक में परिभाषित किया है इसलिए आपका चाइल्ड कंट्रोलर सभी स्कोप वैरिएबल को लेगा। इसलिए सैद्धांतिक रूप से आपको कॉल करने की आवश्यकता नहीं है $parent
। उपरोक्त उदाहरण को निम्नानुसार भी लिखा जा सकता है:
function ParentCtrl($scope) {
$scope.cities = ["NY","Amsterdam","Barcelona"];
}
function ChildCtrl($scope) {
$scope.parentCities = $scope.cities;
}
AngularJS डॉक्स इस दृष्टिकोण का उपयोग करते हैं, यहां आप इसके बारे में अधिक पढ़ सकते हैं $scope
।
एक और अपडेट
मुझे लगता है कि यह मूल पोस्टर का बेहतर जवाब है।
एचटीएमएल
<div ng-app ng-controller="ParentCtrl as pc">
<div ng-controller="ChildCtrl as cc">
<pre>{{cc.parentCities | json}}</pre>
<pre>{{pc.cities | json}}</pre>
</div>
</div>
जे एस
function ParentCtrl() {
var vm = this;
vm.cities = ["NY", "Amsterdam", "Barcelona"];
}
function ChildCtrl() {
var vm = this;
ParentCtrl.apply(vm, arguments); // Inherit parent control
vm.parentCities = vm.cities;
}
यदि आप controller as
विधि का उपयोग करते हैं, तो आप निम्नानुसार मूल क्षेत्र तक भी पहुँच सकते हैं
function ChildCtrl($scope) {
var vm = this;
vm.parentCities = $scope.pc.cities; // note pc is a reference to the "ParentCtrl as pc"
}
जैसा कि आप देख सकते हैं कि एक्सेस करने के कई अलग-अलग तरीके हैं $scopes
।
function ParentCtrl() {
var vm = this;
vm.cities = ["NY", "Amsterdam", "Barcelona"];
}
function ChildCtrl($scope) {
var vm = this;
ParentCtrl.apply(vm, arguments);
vm.parentCitiesByScope = $scope.pc.cities;
vm.parentCities = vm.cities;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular.min.js"></script>
<div ng-app ng-controller="ParentCtrl as pc">
<div ng-controller="ChildCtrl as cc">
<pre>{{cc.parentCities | json}}</pre>
<pre>{{cc.parentCitiesByScope | json }}</pre>
<pre>{{pc.cities | json}}</pre>
</div>
</div>