Ich habe die $ scope-Variable innerhalb der http.get() -Methode des übergeordneten Controllers definiert. Ich kann nicht direkt von Kind Controller zugreifen, weil seine Aussage als undefined. Wenn ich auf diese Bereichsvariable von meinem Child Controller mit der Watch-Funktion zugegriffen habe, funktioniert es gut. Aber für eine größere Anzahl von Scope-Variablen Wie kann ich die Watch-Funktion verwenden Oder gibt es eine andere Möglichkeit, dies ohne Watch zu tun? Ich habe meine Geige hier aktualisiert click here fiddle for accessing more number of parent scope variablesZugreifen auf den übergeordneten Bereich vom untergeordneten Controller mit der Uhr
function ParentCtrl($scope, $http) {
$scope.cities = ["NY", "Amsterdam", "Barcelona"];
// $scope.example1 = $http.get('/echo/json');
$http.get('/echo/json').then(function(value) {
\t $scope.example2 = value.status;
\t \t });
$http.get('/echo/json/error').then(null,function(value) {
$scope.example3 = value.status;
});
$http.get('/echo/json').success(function(data, status, headers, config) {
$scope.example4 = status;
});
$http.get('/echo/json/error').error(function(data, status, headers, config) {
$scope.example5 = status;
});
$http.get('/echo/json/error').catch(function(value) {
$scope.example6 = value.status;
});
}
function ChildCtrl($scope) {
$scope.parentcities = $scope.$parent.cities;
// console.log("1=="+$scope.example1);//undefined
console.log("2=="+$scope.example2);//undefined
console.log("3=="+$scope.example3);//undefined
console.log("4=="+$scope.example4);//undefined
console.log("5=="+$scope.example5);//undefined
console.log("6=="+$scope.example6);//undefined
/*$scope.$watch("example1", function(example1) {
if(angular.isDefined(example1)){
console.log("1_watch=="+$scope.example1); //Defined
}
});*/
$scope.$watch("example2", function(example2) {
if(angular.isDefined(example2)){
console.log("2_watch=="+$scope.example2); //Defined
}
});
$scope.$watch("example3", function(example3) {
if(angular.isDefined(example3)){
console.log("3_watch=="+$scope.example3); //Defined
}
});
$scope.$watch("example4", function(example4) {
if(angular.isDefined(example4)){
console.log("4_watch=="+$scope.example4); //Defined
}
});
$scope.$watch("example5", function(example5) {
if(angular.isDefined(example5)){
console.log("5_watch=="+$scope.example5); //Defined
}
});
$scope.$watch("example6", function(example6) {
if(angular.isDefined(example6)){
console.log("6_watch=="+$scope.example6); //Defined
}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.min.js"></script>
<div ng-app ng-controller="ParentCtrl">
<div ng-controller="ChildCtrl as vm">
{{$parent.cities}}
</div>
</div>
Ihr Fiddle Link ist kein Hyperlink. Können Sie bitte bearbeiten – Maverick
@Maverick können Sie jetzt überprüfen plz mit dem hier klicken – VVijay