我知道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)">
控制器
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;
});
}
}
你将如何做到这一点?当用户退格/删除所有字母以便我可以重置表格时,我需要检测输入何时清除。
答案 0 :(得分:5)
您只需设置ng-change
指令即可。
<input ng-model="tgs.tagSearching" ng-change="tgs.detectEmpty()">
vm.detectEmpty = function() {
if (vm.tagSearching.trim().length === 0) {
// it's empty
}
}