AngularJS控制器窗口功能

4nkexdtk  于 2023-01-08  发布在  Angular
关注(0)|答案(1)|浏览(114)

我的angularjs应用程序有一个窗口功能的问题。
例如,窗口大小调整功能。
它应该只在它所在的控制器/模板中使用。但是控制器中的函数(someFunction())在每个站点上都会被触发。
下面是代码:

angular.module('app.site').controller('SiteController', SiteController);         

function SiteController($scope, $document, $window) {
angular.element($window).bind('resize', function () {
    someFunction();
});
...

途径:

.state('app.site', {
                url: "/site/edit/:id",
                templateUrl: "Scripts/modules/site/site-edit.tpl.html",
                controller: 'SiteController',
                controllerAs: 'vm'
                }
            })
mfpqipee

mfpqipee1#

您应该尝试像这样绑定和取消绑定它:

var someFunction = function () {
  // Do something 
};

angular.element($window).on('resize', someFunction);

scope.$on('$destroy', function () {

  angular.element($window).off('resize', someFunction);
});

相关问题