我正在使用Ionic框架开发一个应用程序,它也使用AngularJS。我有一个问题,即触发ng-click事件,但是在按下另一个按钮的下一个按钮时会触发相同的事件。例如,在页面上,我有多个按钮,每个按钮都有不同的ng-click处理程序。但是,当我单击一个按钮时,会调用该按钮事件处理程序,当我单击另一个按钮时,将再次调用第一个按钮的事件处理程序。我必须再次单击第二个按钮才能调用其事件处理程序。
这是我的观看代码:
<ion-header-bar align-title="center" class="bar-positive">
<div class="buttons">
<button class="button button-clear" ng-click="goBack()">Back</button>
</div>
<h1 class="title"><img class="title-image" src="img/bkg_header2x.png" width="242" height="32" /></h1>
</ion-header-bar>
<ion-content class="">
<div class="maker_detail_title">
{{maker.project_name}}
</div>
<div class="maker_detail_maker">
<span style="font-weight: bold;">Maker:</span> {{maker.maker_name}}
</div>
<div class="maker_description">
{{maker.project_description}}
</div>
<div class="maker_detail_social">
<button type="button" class="button button-clear" ng-click="shareTwitter($event)">Twitter</button>
</div>
</ion-content>
和相应的控制器代码:
.controller('MakerDetailCtrl', function($scope, $state, $stateParams, $ionicHistory, makerService, $cordovaSocialSharing) {
$scope.maker = makerService.getMakerById($stateParams.makerId);
$scope.goBack = function() {
$ionicHistory.goBack();
}
$scope.shareTwitter = function($event) {
alert('share twitter');
$event.stopPropagation();
}
})
在这个例子中,当我点击推特按钮时,我看到'分享推特'提醒,如果我点击“返回”按钮,我再次获得“分享推特”提醒。第二次点击它会调用后退动作。
请注意,我尝试添加stopPropagation调用,但这没有帮助。有什么想法吗?