Angular JS 父作用域单击处理程序未被销毁
Angular JS Parent Scope Click Handler Not Destroyed
这是我的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') 并将函数重写为 return 空或其他内容。
有更好的方法吗?
谢谢
$scope.$parent.doSomething
正在将 doSomething
属性 添加到该父 $scope 对象。只要该父作用域没有被破坏,您的点击处理程序就会一直存在。
这是我的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') 并将函数重写为 return 空或其他内容。
有更好的方法吗?
谢谢
$scope.$parent.doSomething
正在将 doSomething
属性 添加到该父 $scope 对象。只要该父作用域没有被破坏,您的点击处理程序就会一直存在。