Angularjs angular在一次单击中执行两次单击功能

Angularjs angular在一次单击中执行两次单击功能,angularjs,twitter-bootstrap,Angularjs,Twitter Bootstrap,我的django应用程序模板中有以下代码: <div class="list-group"> <a ng-repeat="prog in programs | orderBy:'academic_program.program_title' | orderBy:'primary_program':true" href="/acadprog/{{prog.academic_program.acad_program_code}}/" ng-click="

我的django应用程序模板中有以下代码:

      <div class="list-group">
        <a ng-repeat="prog in programs | orderBy:'academic_program.program_title' | orderBy:'primary_program':true" href="/acadprog/{{prog.academic_program.acad_program_code}}/" ng-click="display.addprogram = false" class="list-group-item">
            {{prog.academic_program.program_title}}
                <span  
                    ng-if="prog.primary_program == true" 
                    class="glyphicon glyphicon-flag pull-right" 
                    ng-click="open2()">
                </span>
            <div style="padding-bottom:5px;">
                <span class="badge badge-success">{{prog.credits_completed}}</span>
                <span class="badge badge-info">{{prog.academic_program.required_credits}}</span>
            </div>
        </a>    
      </div>

这里,
open2()
函数在单击标志时打开一个模式对话框。模式工作正常,每当我删除我的
标记中href中的内容时,该模式就会打开。但是当我在那些hrefs中输入url时,它们就不再打开了。可能会发生什么?我怎样才能避开它


我发现这个问题是因为点击标志也会在列表上执行点击功能,因此它会重新加载整个视图!如何防止href列表上出现单击功能?

您需要将事件传递给
open2
函数并在其上设置
preventDefault()

<span  ng-if="prog.primary_program == true" 
       class="glyphicon glyphicon-flag pull-right" 
       ng-click="open2($event)">

 $scope.open2 = function(e) { 
   e.preventDefault(); 
   //do other stuff 
 }

$scope.open2=函数(e){
e、 预防默认值();
//做其他事情
}