在我的一个指令中,我使用了angular.element($window).bind('scroll').当指令被销毁时,我想要unbind它.通常情况下,我会这样做:
$scope.$on('$destroy', function()
{
angular.element($window).unbind('scroll');
});
Run Code Online (Sandbox Code Playgroud)
但是,如果另一个指令也与该scroll事件结合$window,并且该事件仍然需要存在,那该怎么办呢?如果我使用unbind上面的内容,那么另一个指令的绑定也会被删除.
我有什么选择?
tas*_*ATT 35
在传递给bind/on时,将相同的函数引用传递给unbind/off,以取消绑定该特定的处理程序:
var fn = function () {};
angular.element($window).on('scroll', fn);
angular.element($window).off('scroll', fn);
Run Code Online (Sandbox Code Playgroud)
例如:
var onScrollAction = function () {
// Do something
};
angular.element($window).on('scroll', onScrollAction);
scope.$on('$destroy', function () {
angular.element($window).off('scroll', onScrollAction);
});
Run Code Online (Sandbox Code Playgroud)
请注意,在jQuery中,函数bind和unbind不推荐使用.但是你可以在jQuery和jqLite中使用它们,因为它们只是调用它们on和off幕后.
| 归档时间: |
|
| 查看次数: |
15783 次 |
| 最近记录: |