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