javascript – AngularJS ng – 如果不在表单中工作

前端之家收集整理的这篇文章主要介绍了javascript – AngularJS ng – 如果不在表单中工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在“提交”之后我试图隐藏我的表单.我想用ng-if来做.单击“查看”按钮可以打开和关闭表单,但它不适用于“添加”按钮.这是什么原因?

我创建了一个JSFiddle. Link to JSFiddle.

我的表格:

<form name="userAddForm" ng-submit="something()" class="form-horizontal" role="form">
    <div class="form-group">
      <label class="col-md-2 control-label">Username</label>

      <div class="col-md-3">
        <input name="username" ng-model="user.username" class="form-control" ng-required="true" placeholder="Username" type="text" />
      </div>
    </div>
    <div class="form-group">
      <label class="col-md-2 control-label">Password</label>

      <div class="col-md-3">
        <input name="password" ng-model="user.password" class="form-control" placeholder="Password" type="password" ng-required="true" />

      </div>
    </div>



    <button ng-disabled="userAddForm.$invalid" type="submit" ng-click="add=!add" class="btn btn-success">
      <span class="glyphicon glyphicon-ok"></span> Add
    </button>
  </form>
</div>

解决方法

请不要使用$parent!

使用适当的原型继承.

它不起作用的原因是因为你通过使用ngIf创建一个新的范围.

它不会创建隔离范围,因此您不必担心这一点.

当您传递primitive时,Javascript将在新范围的原型上“隐藏”该值.

因此,它不再直接引用父范围中的值.

How do you get around that?

add a dot

这粗略地转化为;使用对象并绑定到该对象的属性.对象不会被遮蔽,因为它们不是原始对象.你得保留参考,它只是工作™.

jsfiddle

猜你在找的JavaScript相关文章