【发布时间】:2021-09-30 18:13:17
【问题描述】:
我在 Angular 中有一个表单,里面有两个按钮标签。一键在ng-click 上提交表单。另一个按钮纯粹用于使用ng-click 进行导航。但是,当单击第二个按钮时,AngularJS 会导致页面刷新,从而触发 404。我在函数中放置了一个断点,它正在触发我的函数。如果我执行以下任何操作,它就会停止:
- 如果我删除
ng-click,该按钮不会导致页面刷新。 - 如果我注释掉函数中的代码,它不会导致页面刷新。
- 如果我使用
href=""将按钮标签更改为锚标签(<a>),则不会导致刷新。
后者似乎是最简单的解决方法,但为什么 AngularJS 甚至在我的函数之后运行任何导致页面重新加载的代码?好像是个bug。
这是表格:
<form class="form-horizontal" name="myProfile" ng-switch-when="profile">
<fieldset>
<div class="control-group">
<label class="control-label" for="passwordButton">Password</label>
<div class="controls">
<button id="passwordButton" class="secondaryButton" ng-click="showChangePassword()">Change</button>
</div>
</div>
<div class="buttonBar">
<button id="saveProfileButton" class="primaryButton" ng-click="saveUser()">Save</button>
</div>
</fieldset>
</form>
这里是控制器方法:
$scope.showChangePassword = function() {
$scope.selectedLink = "changePassword";
};
【问题讨论】:
-
看看这是否是您的问题github.com/angular/angular.js/issues/1238(不幸的是,我对 github 的了解不够,无法判断此修复程序是否在 1.0.1 版本中)。
-
我看到了那个,但我没有更改位置,所以我认为它不适用。除非这个其他按钮以某种方式导致它提交,但它没有定义为提交类型,并且当我取消 ng-click 时,该按钮不会提交表单。
-
如果你能提供这个问题的工作演示,那就太好了。也许从:Angular Plnkr
标签: javascript angularjs