我在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>
Run Code Online (Sandbox Code Playgroud)
这是控制器方法:
$scope.showChangePassword = function() {
$scope.selectedLink = "changePassword";
};
Run Code Online (Sandbox Code Playgroud) 如何使用AngularJS跳过嵌套表单的验证?即使其子表单无效,我也必须使外部表单有效.
在下面的示例中,外部表单应该是有效的(fOuter.$valid必须为true).默认情况下,它不是.有选择吗?
代码(jsFiddle):
<div ng-app ng-controller="Ctrl">
<ng-form name="fOuter">
<h3>Outer form (valid={{fOuter.$valid}})</h3>
<input type="text" name="txtOuter" ng-model="outer" placeholder="(required)" required />
<ng-form name="fInner">
<h3>Inner form (valid={{fInner.$valid}})</h3>
<input type="text" name="txtInner" ng-model="inner" placeholder="(required)" required />
</ng-form>
</ng-form>
</div>
Run Code Online (Sandbox Code Playgroud)