이 코드에는 상위 컨트롤러와 하위 컨트롤러가 있습니다. HTML에서는 상위 컨트롤러가 하위 컨트롤러를 둘러 쌉니다. 상위 컨트롤러에서 하위 컨트롤러의 범위를 가져 오는 $ 컨트롤러 서비스를 사용하고 있습니다. 하위 컨트롤러의 $ scope.Child는 $ scope.Parent에 할당됩니다. 버튼을 클릭하면 $ scope.Child가 하위 컨트롤러의 "새 하위"값으로 변경됩니다.AngularJS에서 자식 컨트롤러에서 상위 컨트롤러로 변수의 값을 변경하는 방법은 무엇입니까?
부모 컨트롤러에서도 동일한 변경을 수행하려고합니다. 나는 이었고 $ scope.Parent는 $ scope.Child에 $ watch()를 두어 값을 "new child"로 가져 오는 것을 기대했다. 그러나 자식 컨트롤러의 $ scope.Child의 값의 변화가
그래서 $ scope.Parent에 반영되지 않는, 내 질문 내가 아이에 $ scope.Child의 값의 변화를 할당 할 방법입니다 컨트롤러를 상위 컨트롤러에 연결 하시겠습니까?
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script type="text/javascript">
var app = angular.module('myApp',[]);
app.controller('parent', function($scope,$controller){
var childScope = $controller('child',{$scope: $scope});
$scope.Parent = $scope.Child;
$scope.$watch('Child',function(){
$scope.Parent = $scope.Child;
},true);
});
app.controller('child',function($scope){
$scope.Child = "child";
$scope.changeValue = function() {
$scope.Child = "new child";
}
});
</script>
<body ng-app="myApp">
<div ng-controller="parent">
<p>this is parent: {{Parent}}</p>
<div ng-controller="child">
<p>this is {{Child}}</p>
<button ng-click="changeValue()">Click!</button>
</div>
</div>
</body>
</html>