首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular watch功能在safari浏览器中不起作用

Angular watch功能在safari浏览器中不起作用
EN

Stack Overflow用户
提问于 2017-06-20 19:13:32
回答 2查看 490关注 0票数 0

我有一个搜索文本框。我把值放在上面,然后按回车键,它就会给我结果。

这是我的Html代码

代码语言:javascript
复制
     <input type="text" class="filter-input" my-enter="submitFilterForm()" ng-model="vm.query" auto-focus />

这是我的JS文件

代码语言:javascript
复制
              $scope.$watch("vm.query", function(name) {
            $scope.validationError = false;
            console.log("value of query is", name);
            filterStateService.updateSearchQuery(name);
        });

my-enter是我的自定义指令。On ng-model="query“我在JS中定义了一个$watch函数。

如果我在文本框中逐个字符输入值,则打印的$scope.query是正确的。但是如果我直接复制这个值并粘贴到textBox中,它就会变成null。当我直接在搜索框中复制和粘贴值时,$watch不工作。我如何解决这个问题。

EN

回答 2

Stack Overflow用户

发布于 2017-06-20 19:19:46

尝试使用ng-change而不是watch函数:

HTML:

代码语言:javascript
复制
<input type="text" class="filter-input" my-enter="submitFilterForm()" ng-model="query" ng-change="queryChanged" ge-auto-focus />

JS:

代码语言:javascript
复制
function queryChanged(){
     $scope.query //do something
}
票数 1
EN

Stack Overflow用户

发布于 2017-06-20 19:31:22

如果你想使用$watch,它应该可以工作:

代码语言:javascript
复制
$scope.$watch('vm.query', function(newValue, oldValue) {
    console.log('newValue:', newValue);
    console.log('oldValue:', oldValue);
});

https://jsfiddle.net/jbbrwcky/rufe5da1/6/

您需要将参数传递给$watch,而不是像以前那样查看$scope.query。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44651506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档