2
孩子控制器如何能够做到以下使用ControllerAs方法:访问父范围从ControllerAs语法
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!
});
不是。我特别要求“不要假设父控制器是否有别名”。你的链接的答案不提供这个解决方案 – 2014-10-30 23:44:06
$ scope。$ parent不是父对象的别名 – yunandtidus 2014-10-30 23:47:36
不,它不是 - 虽然它不使用继承的范围(如果它是'$ parent。$ )但是在任何情况下,使用Controller-As,用'this.vmProperty'定义ViewModel,而不是'$ scope.vmProperty'。有了这个,'$ scope。$ parent.vmProperty'是未定义的。 – 2014-10-30 23:53:47