Here erwähnt der Autor
the $scope object used by the two controllers are not the same $scope object
Snippet für das gleiche:
nun eine kleine Änderung an den obigen Code in Betracht ziehen.
<body ng-app="myapp">
<div ng-controller="myController1">
<div>{{data.theVar}}</div>
<div>{{data.common}}</div>
<div ng-controller="myController2">
<div>{{data.theVar}}</div>
<div>{{data.common}}</div>
<div>{{temp}}</div>
<div>{{newTemp}}</div>
</div>
</div>
<script>
var module = angular.module("myapp", []);
var myController1 = module.controller("myController1", function($scope) {
$scope.data = {
theVar : "Value One",
common : "common Value"
};
$scope.temp = "John Wick 2 is going to be released soon";
});
var myController2 = module.controller("myController2", function($scope) {
$scope.data = {
theVar : "Value Two"
};
$scope.newTemp = $scope.temp;
console.log("");
});
</script>
</body>
Die Ansicht, die Controller2 entspricht, wurde innerhalb der Ansicht für Controller1 verschoben.
Für dieses Stück Code innerhalb des controller2,
$scope.newTemp = $scope.temp;
Sind $ scope über ein und dasselbe Objekt markiert?
Wenn ja, woher weiß AngularJS das?
Wären sie gleiche worden, $scope.temp
in controller2 würde und so undefiniert dann $scope.newTemp
?
Für mich sind sie nicht die gleichen, die o/p des obigen Programms berücksichtigen. Siehe unten:
Aber dann, ich bin verwirrt, warum sie beide kommt als einer & das gleiche, wenn ich debuggen,
Wie funktioniert AngularJS zugreifen können Wert von $scope.temp
von Controller1 in Controller2?
Bitte klären?
Schließlich
Warum zeigt der Google Chrome-Debugger nicht die Eigenschaften (in Bezug auf $ scope von controller1) in $ scope von controller2 an? –
Es tut, aber es ist in '__proto__' –
Martijn: Oh ja. Habe diesen grundlegenden Punkt nicht bemerkt. Nun, danke für das Gleiche. –