如何使用Controller-As方法实现以下目标:
app.controller("parentCtrl", function($scope){
$scope.parentObj = {prop1: "not set", prop2: "something"};
$scope.doSomething = function(){...}
})
.controller("childCtrl", function($scope){
$scope.parentObj.prop1 = "changed";
});
<div ng-controller="parentCtrl">
{{prop1}}
<div ng-controller="childCtrl">
{{prop2}}
<button ng-click="doSomething()">Do</button>
</div>
</div>
没有假设父控制器在视图中的别名 ,即没有{{pc.prop2}}
。
换句话说,我想在使用Controller-As方法时受益于范围继承。问题是如何?
app.controller("parentCtrl", function(){
this.parentObj = {prop1: "not set", prop2: "something"};
this.doSomething = function(){...}
})
.controller("childCtrl", function($scope){
// $scope.parentObj is undefined!
});
答案 0 :(得分:3)
当您使用as
语法定义控制器,然后访问子控制器中的父范围变量时,请使用以下命令:
var userData = $scope.parentCtrl.user;
其中parentCtrl
是使用as
语法的父控制器的名称,而user是在同一控制器中定义的变量。