我在Angular中有一个表单,其中有两个按钮标签。一个按钮在ng-click
上提交表格。另一个按钮纯粹用于导航,使用ng-click
。但是,当点击第二个按钮时,AngularJS会导致页面刷新,从而触发404页面。我已经在函数中删除了一个断点,并触发了我的函数。如果我执行以下任何操作,它将停止:单击表单中的按钮会导致页面刷新
- 如果我删除
ng-click
,则该按钮不会导致页面刷新。 - 如果我注释掉函数中的代码,它不会导致页面刷新。
- 如果我将按钮标记更改为
href=""
的定位标记(<a>
),则不会导致刷新。
后者似乎是最简单的解决方法,但为什么AngularJS甚至在导致页面重新加载的函数之后运行任何代码?看起来像一个错误。
这里是形式:
<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";
};
看看这是你的问题https://github.com/angular/angular.js/issues/1238 (不幸的是,我不知道我身边的github的方式足以被能够判断这个修复是否在1.0.1版本中)。 –
我看到一个,但我没有改变位置,所以我不认为它适用。除非这个按钮以某种方式导致它提交,但它没有被定义为提交类型,并且当我脱离ng-click时,按钮不会提交表单。 – chubbsondubs
这将是伟大的,你可以提供这个问题的工作演示。也许从以下开始:[Angular Plnkr](http://plnkr.co/edit/gist:3662656) –