当用户在输入文本中键入逗号时,Angularjs会监视

时间:2016-04-14 11:31:23

标签: javascript angularjs

一切都在问题中,我想在用户输入时查看输入文本,当他输入逗号时输入得到验证而不是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()"一起使用,我忘了重启服务器。

1 个答案:

答案 0 :(得分:0)

你的$ watch逻辑不正确。$ watch用于查找模型值的变化。请参考this。当表达式发生变化时,所有$ watch都会注册回调。

$scope.$watch('newTag', function(nv,ov) {
       if (nv!==ov ){

         action();

    }
});

在您的情况下,您必须编写指令并查找,