AngularJS,用按钮清除输入文本

Ron*_*nie 7 javascript angularjs

使用AngularJS,清除文本字段值的正确方法是什么?我有一个输入字段,旁边有一个按钮.用户输入并按下按钮以清除或重置它.

我知道我可以ng-click在按钮上添加一个事件并调用一个函数,但我不确定这是否是正确的方法.

现在我只有:

<input type="text" ng-model="searchQuery" />
<button class="btn" <!--do something here maybe?-->>
  <i class="icon-search" ng-class="{'icon-refresh': searchQuery.length}"></i>
</button>
Run Code Online (Sandbox Code Playgroud)

nij*_*ier 30

我有同样的问题.也许简单最好?

无需在控制器中调用方法.也不需要指令.只是一个简短的声明来清除您在输入标记中声明的模型.像这样:

<input ng-model="searchQuery">
<button class="btn" ng-click="searchQuery = ''"></button>
Run Code Online (Sandbox Code Playgroud)

当输入中没有文本时,您也可以隐藏清除按钮,如下所示:

<button class="btn" ng-show="searchQuery.length" ...></button>
Run Code Online (Sandbox Code Playgroud)

顺便说一句,也许一个将清除按钮放在输入框内的指令会很好.像你在iPhone上看到的东西.

  • +1 - 这更像是用于在点击时清除数据模型的"Angular方式". (4认同)

Dog*_*oku 8

ng-click 是"角度"的方式来做到这一点

只需在示波器中声明一个函数并将其附加到按钮的ng-click

如果你想要更高级的东西,那么"Angular方式"建议创建一个指令来包装你想要的功能,并以某种方式将它附加到你的按钮(取决于你如何实现你的指令)

如果您想要一个示例,请在评论中告诉我