Angularjs jquery绑定状态

时间:2015-04-27 20:49:13

标签: javascript jquery angularjs angular-ui-router

我们说我有两种状态:

.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"); });

但不是在另一个控制器上。

如果我在不同的控制器中分别进行了很多这样的绑定,那么重新启动绑定的最有效方法是什么?

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

1 个答案:

答案 0 :(得分:1)

最有效的方法是不要这样做。正如评论所指出的,你可能不应该在你的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(){...}
    }
  };
});