【发布时间】:2018-01-20 18:56:49
【问题描述】:
我正在使用 $scope.$parent 更改子控制器内的变量值,但更改并未反映到其父级。
<div data-ng-if="!addBillDetails">
<button class="btn btn-small" data-ng-if="trItem.skuId==217"
data-ng-click="addDetails()">Add Details</button>
</div>
<div data-ng-if="addBillDetails" data-ng-include="'views/test.html'"></div>
$scope.addDetails=function(){
$scope.addBillDetails=true;
};
test.html 和 testCrl
<div data-ng-controller="testCtrl">
<button type="button" class="btn red" data-ng-click="cancel()">Cancel</button>
</form>
</div>
$scope.cancel=function(){
alert("cancel");
$scope.$parent.addBillDetails=false;
};
【问题讨论】:
-
不带 $parent 试试!
-
ng-include创建子作用域。 -
$parent 可以访问父范围权限???
-
是的,但是由于
ng-include子范围,现在层次结构中有另一个父级。所以它会是$parent.$parent,这很丑。使用如下建议的对象 -
@charlietfl 我觉得
controllerAs是更好的选择,在幕后它使用隐式dot rule:p
标签: javascript html angularjs angularjs-ng-include