AngularJS ng-如果不在表单中工作

Qua*_*uai 6 html javascript angularjs

在"提交"之后我试图隐藏我的表单.我想用ng-if来做.单击"查看"按钮可以打开和关闭表单,但它不适用于"添加"按钮.这是什么原因?

我创建了一个JSFiddle.链接到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>
Run Code Online (Sandbox Code Playgroud)

小智 3

请不要使用 $parent!

\n\n

使用正确的原型继承。

\n\n

它不起作用的原因是因为您正在通过使用ngIf.

\n\n

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

\n\n
\n\n

当您传递一个原语时,Javascript 会在新作用域的原型上“隐藏”该值。

\n\n

因此,它不再是对父作用域中的值的直接引用。

\n\n
\n

你如何解决这个问题?

\n
\n\n

添加一个点

\n\n

这大致可以翻译为:使用一个对象并绑定到该对象的属性。对象不会被遮挡,因为它们不是基元。您可以保留引用,它就可以工作\xe2\x84\xa2

\n\n

jsfiddle

\n