Javascript 控制器在状态转换时启动两次
我正在构建一个简单的搜索应用程序。搜索结果页面定义为:Javascript 控制器在状态转换时启动两次,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我正在构建一个简单的搜索应用程序。搜索结果页面定义为: .state('search', { url: '/search?q', templateUrl: 'views/search.html', controller: 'SearchCtrl' }) 在SearchCtrl中,我有两个作用域函数来添加/删除搜索词: $scope.searchByTerm = function(term) { termsService.addTerm($scope.select
.state('search', {
url: '/search?q',
templateUrl: 'views/search.html',
controller: 'SearchCtrl'
})
在SearchCtrl中,我有两个作用域函数来添加/删除搜索词:
$scope.searchByTerm = function(term) {
termsService.addTerm($scope.selectedTerms, term);
$state.go($state.current, {q: $scope.selectedTerms}, {reload: true});
};
$scope.removeTerm = function(term) {
termsService.removeTerm($scope.selectedTerms, term);
$state.go($state.current, {q: $scope.selectedTerms}, {reload: true});
};
termsService.addTerm函数只需将term推入$scope.selectedTerms数组,termsService.removeTerm将从数组中删除存在的term。因为我希望页面根据新的搜索词重新加载和获取数据,所以我将reload设置为true
这样,SearchCtrl有时会启动两次,主要是在$scope.selectedTerms包含两个或更多项时。我已经尝试了所有可能的重写方法,但它仍然持续运行了两次
如果我在两个函数中都删除了termsService行,状态转换将不会启动SearchCtrl两次
无法找出可能出错的地方
angular-ui-router0.2.11,angular1.2.26检查您的视图是否没有ng controller=SearchCtrl此处确实没有足够的信息来回答您的问题,并且在大多数情况下,X被窃听,但当我做一个不相关的Y时,它突然开始工作是一个误诊。您应该做的是提供一个工作示例检查您的问题。您可以共享视图/搜索吗。html@NewDev谢谢,我已经检查过了,我肯定没有。这是0.2.11中的一个bug