javascript - 在 AngularJS 中清除输入时如何调用函数?

标签 javascript angularjs validation input

我知道 Angular 有 simple syntax to display messages或更新 css,但我想做的实际上是调用一个函数。

<input ng-model="somefield">
<span ng-show="!somefield.length">Please enter something!</span>
<span ng-show="somefield.length">Good boy!</span>

这是我的模型 vm.tagSearching = '' 我可以检测到我何时开始输入并查看值更新。然而,一旦我到达最后一封信,我将其删除,但我没有得到更新。

我尝试使用 $scope.watch

$scope.$watch('vm.tagSearching', function() {
   alert('hey, var has changed!');
});

然而,这只会在应用程序初始化时触发一次,但不会再次触发,即使在输入时也是如此。

标记

<input class="tag-search-input"
       type="text"
       placeholder="Search Tags"
       ng-model="tgs.tagSearching"
       typeahead="t for t in tgs.fuzzyTagSearch($viewValue)">

Controller

function fuzzyTagSearch(word) {
    console.log('fuzzyTagSearch',word);
    if (word.length > 2) {
        ApiFactory.getSearchResults(word).then(function(data) {
            console.log('data',data.data.ticker_tags);
            vm.terms = data.data.ticker_tags;
        });
    }
}

您将如何实现这一目标?当用户退格/删除所有字母时,我需要检测输入何时清除,以便我可以重置表格。

最佳答案

您可以简单地设置一个 ng-change指令。

<input ng-model="tgs.tagSearching" ng-change="tgs.detectEmpty()">

vm.detectEmpty = function() {
    if (vm.tagSearching.trim().length === 0) {
        // it's empty
    }
}

关于javascript - 在 AngularJS 中清除输入时如何调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35142899/

相关文章:

javascript - 使用 AngularJS 进行动态数据计算

javascript - 在 Angularjs 中使用日期过滤器显示休息日的日期

php - 图像不闪烁

javascript - 将php文件输出放在html div参数中

javascript - 在 Flash 中播放停止的视频

JavaScript 监听器不断增加

javascript - 我可以使用 div 为它所在的容器设置动画吗?

validation - 如何验证 IIIF list ?

ruby-on-rails - 在保存到 Rails 之前将输入转换为整数

javascript - 文本框的按键限制为小数点后两位?