0
Grundsätzlich der Button klicken wird aufrufen ShowHide()
Funktion von MyController
, und wenn $scope.IsVisible==false
, kopieren Sie den Wert.
Aber hier, das Wort zeigt dies auf die $scope
von formController
. Und der output von console.log bewies dies, obwohl dies das ist was ich erwarte zu tun, aber kann mir jemand erklären wie das passiert? Ist das wegen Javascript Prototyp?
<div ng-app="MyApp" ng-controller="MyController">
<div ng-controller="formController">
<div ng-bind="broker.info"></div>
<div ng-show="IsVisible">Some content to be hide</div>
<button ng-click="ShowHide()">ok</button>
</div>
</div>
Script:
var app = angular.module('MyApp', []);
var old = <?=json_encode($broker)?>;
app.controller('formController',function ($scope) {
$scope.broker = angular.copy(old);
});
app.controller('MyController', function ($scope) {
$scope.IsVisible = false;
$scope.ShowHide = function() {
//If DIV is visible it will be hidden and vice versa.
$scope.IsVisible = $scope.IsVisible ? false : true;
if($scope.IsVisible==false) {
this.broker = angular.copy(old);
console.log(this);
console.log($scope);
}
}
});
Screenshot:
Mögliche Duplikat [Was die Nuancen der Umfang prototypal/prototypische Vererbung in AngularJS sind?] (Http://stackoverflow.com/questions/14049480/what-are-the-nuances-of-scope-prototypal -prototypische-Vererbung-in-Angularjs) – Claies