Angularjs jquery 状态之间的绑定

Angularjs jquery binding between states

假设我有两个状态:

.state('page1', {
    url: '/page1',
    templateUrl: 'pages/templates/page1.html',
    controller: 'page1'
})

.state('page2', {
    url: '/page2',
    templateUrl: 'pages/templates/page2.html',
    controller: 'page2'
})

他们都有元素<div id="clickme'>DO IT</div>


在一个控制器中我有:

$("body").on('click', '#clickme', function(e) { alert("clicked"); });

但不在另一个控制器上。

如果我在不同的控制器中分别进行大量绑定,重新启动我的绑定的最有效方法是什么?

我不希望它们在我切换状态时处于活动状态,因为有些事情可能会重叠,或者只是想确保没有任何重叠。

最有效的方法是根本不做。正如评论所指出的,您可能不应该在 Angular 代码中使用 jQuery。 Its just not the Angular way.

你可能想要的是一些 directives:

.state('page1', {
    url: '/page1',
    template: '<page1>',
    controller: 'page1'
})

.state('page2', {
    url: '/page2',
    template: '<page2>',
    controller: 'page2'
})

然后在你的指令代码中你会得到类似

的东西
.directive('page1', function() {
  return {
    template: '<div ng-click="doIt()">DO IT</div>',
    link: function($scope){
      $scope.doIt = function(){...}
    }
  };
});