【发布时间】:2015-04-09 13:20:35
【问题描述】:
这是我的html
<div controller="parent">
<button ng-click="doSomething()"><Click</button>
<div ng-view></div>
</div>
这是我用于特定视图的 js 控制器:
function child($scope) {
$scope.$parent.doSomething = function() {
// do http request or seomthing else
}
}
现在,当我在子控制器视图上时,当我单击父范围上的按钮时,angular 会发出 http 请求,但是当我导航到具有不同控制器的其他视图时(当然),当我点击时,angular 仍然会发出 http 请求父作用域上的按钮。
我认为当视图更改时,控制器及其范围将被销毁,从而有效地删除对该特定范围对象的引用。
我的解决方法是监听 $scope.on('$destroy') 并覆盖该函数以返回空或其他内容。
有没有更好的方法来做到这一点?
谢谢
【问题讨论】: