为什么ng-click功能执行两次?

时间:2014-04-16 17:05:55

标签: javascript jquery angularjs

我添加了ng-include functionnality的视图:

<footer ng-include="view" ng-controller="searchPresenter" class="searchW"> </footer>

我的控制器定义:

$scope.view = 'search/minView.html';

$scope.search = function() {
    $scope.view = 'search/mainView.html';

    jQuery('html').click(function(event) {
        $scope.view = 'search/minView.html';
        console.log($scope.view)            
    });
};

搜索功能仅用于包含的第一个视图:

<div class="..." ng-click="search()">
    <i class="search icon"></i>
</div>

但是当我第一次点击我刚刚加载的视图时,jQuery函数被执行(我看到它进入控制台),而它不应该。

然后当我点击页面上的任意位置时,控制台会显示2个新行,而只有1个事件应该注册到html内容。

有什么想法吗?

1 个答案:

答案 0 :(得分:-1)

你的控制器中不应该有任何jQuery。你已经有了一个ng-click事件,所以添加jQuery不仅是click事件的重复,而且完全不是Angular的做事方式。您只需更改$ scope变量的值即可获得ng-click事件。

$scope.view = 'search/minView.html';

$scope.search = function() {
    $scope.view = 'search/mainView.html';
};