Wenn Ihr HTML wie unten aussieht, können Sie etwas Ähnliches tun:
Dann können Sie auf den Elternbereich wie folgt zugreifen
function ParentCtrl($scope) {
$scope.cities = ["NY", "Amsterdam", "Barcelona"];
}
function ChildCtrl($scope) {
$scope.parentcities = $scope.$parent.cities;
}
Wenn Sie auf einen Elterncontroller von Ihrer Ansicht aus zugreifen möchten, müssen Sie so etwas tun:
{{$parent.property}}
Sehen Sie jsFiddle: http://jsfiddle.net/2r728/
Update
Eigentlich, da Sie cities
im Elterncontroller definiert haben, wird Ihr Kindcontroller alle Scope-Variablen erben. Theoretisch brauchen Sie also nicht $parent
aufrufen. Das obige Beispiel kann auch wie folgt geschrieben werden:
function ParentCtrl($scope) {
$scope.cities = ["NY","Amsterdam","Barcelona"];
}
function ChildCtrl($scope) {
$scope.parentCities = $scope.cities;
}
Die AngularJS-Dokumentation verwendet diesen Ansatz, hier können Sie mehr über den $scope
lesen.
Noch ein Update
Ich denke, das ist eine bessere Antwort für den ursprünglichen Poster.
HTML
{{cc.parentCities | json}}
{{pc.cities | json}}
JS
function ParentCtrl() {
var vm = this;
vm.cities = ["NY", "Amsterdam", "Barcelona"];
}
function ChildCtrl() {
var vm = this;
ParentCtrl.apply(vm, arguments); // Elternsteuerung vererben
vm.parentCities = vm.cities;
}
Wenn Sie die Methode controller as
verwenden, können Sie auch auf den Elternbereich wie folgt zugreifen
function ChildCtrl($scope) {
var vm = this;
vm.parentCities = $scope.pc.cities; // beachten Sie, dass pc auf den "ParentCtrl as pc" verweist
}
Wie Sie sehen können, gibt es viele verschiedene Möglichkeiten, auf $scopes
zuzugreifen.
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;
}
{{cc.parentCities | json}}
{{cc.parentCitiesByScope | json }}
{{pc.cities | json}}