javascript - angularjs 怎樣移除指令監聽?
黄舟
黄舟 2017-05-16 13:20:19
0
2
620

angular移除指令內容後,它的監聽還在控制器的 $scope 上,要怎麼移除呢?
程式碼如下:

     

输入内容:

如果我直接

$scope.$$watchers = [];

把控制器上的

$scope.$watch("xxx",function(){ console.log("xxx"); });

也移除了,要如何移除指令時連同它的監聽也去掉呢?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆 (2)
漂亮男人

呼叫$scope.$watch()$scope.$on()方法后,都会返回一个函数引用,用于移除监听。了解详细信息,可以查看 Angular $rootScope 官方文档。另外若想了解$broadcast、$on、$emit使用方法,可以參考 - angularjs的事件 $broadcast and $emit and $on 這篇文章。

$scope.del = function () { document.getElementById("content").innerHTML = ""; $scope.$broadcast('destroySpan'); }; // spanC 指令link函数 link: function (scope, element, attrs) { var unwatch = scope.$watch("insert",function(n){ console.log("asd"); element[0].innerHTML = n; }); scope.$on('destroySpan', function() { unwatch(); }); }
    阿神

    指令:

    var clear = scope.$watch("insert",function(n){ console.log("asd"); element[0].innerHTML = n; }); $scope.$on('$destroy', function() { clear(); });
      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!