我遇到了一个奇怪的问题。我有一个嵌套的手风琴,每个手风琴都需要一个像Edit一样的按钮。单击该按钮时,我需要调用另一个函数。我正在做的是单击编辑按钮我正在尝试使用$event.stopPropagation()
来停止手风琴功能。但是当我通过$event.stopPropagation()
时,这种情况就不会发生了。它正在重定向到其他URL。
我发布了一些我的巨大代码。如果需要任何进一步的信息,请发表评论。
HTML
<accordion-heading>
{{course.className}}
<button type="button"
ng-show="course.classId!=$scope.null"
class="pull-right btn btn-default btn-sm"
ng-click="editCourse(course,$event)">
Edit Course
</button>
</accordion-heading>
JS
$scope.editCourse = function(course, ev) {
ev.stopPropagation();
course.courseEditPermission = true;
}
app.js
.config(['$routeProvider', '$httpProvider', function($routeProvider, $httpProvider) {
$httpProvider.defaults.headers.common['Access-Control-Allow-Headers'] = '*';
delete $httpProvider.defaults.headers.common['X-Requested-With'];
$routeProvider
.when('/login', {
controller: 'LoginController',
templateUrl: 'modules/authentication/views/login.html',
hideMenus: true
})
.when('/home', {
controller: 'HomeController',
templateUrl: 'modules/home/views/home.html'
})
.otherwise({
redirectTo: '/xyz'
});
}])
我不知道为什么它会重定向但是在我的JS中我提供了路由,所以我认为event.stopPropagation
正在获取一些匿名URL,所以它正如我所提到的那样重定向到“/ xyz”。
答案 0 :(得分:0)
您需要添加event.preventDefault()处理程序,如下所示:
$scope.editCourse = function(course, ev) {
ev.preventDefault();
ev.stopPropagation();
course.courseEditPermission = true;
}