我在Angular中有一个表单,其中有两个按钮标签。一个按钮在ng-click上提交表单。另一个按钮纯粹用于使用ng-click进行导航。然而,当点击这个第二个按钮时,AngularJS会导致页面刷新,触发404错误。我在函数中设置了一个断点,它会触发我的函数。如果我执行以下任何操作,它就会停止:
ng-click,按钮不会导致页面刷新。<a>)并添加href="",它就不会导致刷新。后者似乎是最简单的解决方法,但为什么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";
};
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你可以尝试阻止默认处理程序:
html:
js:
$scope.saveUser = function (event) { event.preventDefault(); // 你的代码 }如果你查看W3C规范,似乎显而易见的尝试是在你不想要提交的按钮元素上标记
type='button'。特别要注意的是它所说的位置