我正在尝试让输入字段对文本更改事件做出反应。该字段具有datalist
属性以进行自动完成。
据我了解,如果我想在用户输入时挂钩事件(而不是onBlur),我可以使用ng-keyup
。
当用户输入内容时,它可以正常工作,但是当他点击自动完成框中的选项时却无法正常工作。
我可以听到另一个事件,当用户自动填充他的选择时能够触发一个动作吗?
我也尝试ng-keydown
和ng-keypress
但没有成功。
以下是我如何申报输入框:
<input id="id" list="someList" ng-model="myModel" ng-keyup="functionToCall()">
PS:我正在使用Angular Dart。
编辑:
所以我重试了同样的事情,但我删除了ng-model
属性以确保它在更新模型时不会引起摩擦。所以在我看来:
<input id="bob" list="itemOptions" placeholder="Type an item name" ng-change="onItemNameChange2()" >
在我的组件中:
void onItemNameChange2() {
print("changed");
}
它仅在changed
时打印onBlur()
。
我也尝试删除list属性:
<input id="bob" placeholder="Type an item name" ng-change="onItemNameChange2()">
并且只在onBlur
时打印(所以只是键入不会使print()方法被调用,我真的要离开输入字段)
答案 0 :(得分:1)
您可以使用ng-change
。我在JavaScript中做了一个例子fiddle。它应该在Dart中起作用。
list
和ng-change
附加到输入。
<input type="text" ng-model="myData" list="myList" ng-change="textChange()" />
<datalist id="myList">
<option ng-repeat="item in items" value="{{item}}" />
</datalist>
ng-change
实际上并不是一个HTML事件,它是在视图数据更新时触发的角度事件。