角度监视功能在safari浏览器中不起作用

时间:2017-06-20 11:13:32

标签: javascript angularjs

我有一个搜索文本框。我正在投入价值并按下输入键,它给了我结果。

这是我的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 =&#34;查询&#34;我在JS中定义了一个$ watch函数。

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

2 个答案:

答案 0 :(得分:1)

尝试使用ng-change而不是看功能:

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
}

答案 1 :(得分:0)

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

$scope.$watch('vm.query', function(newValue, oldValue) {
    console.log('newValue:', newValue);
    console.log('oldValue:', oldValue);
});

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

您需要将参数传递给$ watch,而不是像现在这样查看$ scope.query。