一切都在问题中,我想在用户输入时查看输入文本,当他输入逗号时输入得到验证而不是ng-click="action()"
我想要像Comma-Typed =" action()",我尝试使用ng-change,scope.watch()并不缺...
到目前为止:
<input id="tagInsert" type="text" name="newTag" ng-model="newTag" ng-model-options="{debounce: 100}" typeahead="tag for tag in getTags($viewValue)" class="form-control" typeahead-loading="loadingTags" ng-keydown="addInterestOnEvent($event)" ng-disabled="interestLimit" autocomplete="off" ng-change="alert('stuff')" />
控制器:
$scope.$watch('newTag', function(val) {
if (val.keyCode == 188) { // KeyCode For comma is 188
alert('comma added');
action();
}
});
我也尝试过ng-keydown:
$scope.addInterestOnEvent = function (event) {
if (event.which !== 188) return;
event.preventDefault();
$scope.addInterest();
};
这不起作用。
修改
它与ng-keydown="action()"
一起使用,我忘了重启服务器。
答案 0 :(得分:0)
你的$ watch逻辑不正确。$ watch用于查找模型值的变化。请参考this。当表达式发生变化时,所有$ watch都会注册回调。
$scope.$watch('newTag', function(nv,ov) {
if (nv!==ov ){
action();
}
});
在您的情况下,您必须编写指令并查找,