我们说我有两种状态:
.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"); });
但不是在另一个控制器上。
如果我在不同的控制器中分别进行了很多这样的绑定,那么重新启动绑定的最有效方法是什么?
当我切换状态时,我不希望它们处于活动状态,因为某些事情可能会重叠,或者只是想确保没有重叠。
答案 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(){...}
}
};
});