相关疑难解决方法(0)

单击表单中的按钮会导致页面刷新

我在Angular中有一个表单,里面有两个按钮标签.一个按钮提交表单ng-click.另一个按钮纯粹用于导航ng-click.但是,当单击第二个按钮时,AngularJS会导致页面刷新,触发404.我在函数中删除了一个断点,它正在触发我的函数.如果我执行以下任何操作,它将停止:

  1. 如果我删除ng-click,该按钮不会导致页面刷新.
  2. 如果我注释掉函数中的代码,它不会导致页面刷新.
  3. 如果我将按钮标记更改为锚标记(<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)

javascript angularjs

211
推荐指数
5
解决办法
15万
查看次数

使用AngularJS跳过嵌套表单验证

如何使用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)

javascript angularjs

31
推荐指数
4
解决办法
2万
查看次数

标签 统计

angularjs ×2

javascript ×2