我有一个搜索文本框。我正在输入值,按下回车键就会给出结果。
这是我的 HTML 代码
<input type="text" class="filter-input" my-enter="submitFilterForm()" ng-model="vm.query" auto-focus />
这是我的 JS 文件
$scope.$watch("vm.query", function(name) {
$scope.validationError = false;
console.log("value of query is", name);
filterStateService.updateSearchQuery(name);
});
my-enter 是我的自定义指令。在 ng-model="query"上,我在 JS 中定义了一个 $watch 函数。
如果我在文本框中逐字符输入值,则 $scope.query 打印正确。但如果我直接复制该值并粘贴到文本框中,它就会为空。当我直接在搜索框中复制并粘贴值时,$watch 不起作用。我该如何解决这个问题。
最佳答案
尝试使用 ng-change 而不是 watch 函数:
HTML:
<input type="text" class="filter-input" my-enter="submitFilterForm()" ng-model="query" ng-change="queryChanged" ge-auto-focus />
JS:
function queryChanged(){
$scope.query //do something
}
关于javascript - Angular watch 功能在 safari 浏览器中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44651506/