首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angularjs $watch在函数中不起作用

angularjs $watch在函数中不起作用
EN

Stack Overflow用户
提问于 2016-09-20 21:58:26
回答 5查看 1.9K关注 0票数 2

我在使用点击时遇到了一个问题,我在下面的函数中使用了$watch,它在没有任何problems.But的情况下工作,当我在点击函数中使用它时,它不会受到影响。我在等待你的建议。

代码语言:javascript
复制
 $scope.d = 1;
    var mark = L.marker(L.latLng(veri.Konum.lat, veri.Konum.lon), { title: veri.Name, data: veri, content: "" });
 mark.addTo(markersLayer);
 mark.on('click', onClick);

 function onClick(e) {

  $scope.$watch("d", function () {
        console.log("12313sadad");
    });
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-09-20 22:03:39

你将watch放到一个不是由任何角度组件触发的函数中,因此angularjs不知道你在该函数中做了什么。

您应该使用一些角度组件(如ng-click、ng-change...)触发该函数。或者您应该在set watch之后调用$scope.$apply() (虽然不建议这样做,但如果没有其他选择,您应该这样做)……

票数 4
EN

Stack Overflow用户

发布于 2017-11-01 17:19:04

试试这个。

代码语言:javascript
复制
$scope.$watch(function() {
        return variableToWatch;
    }, function(newVal, oldVal) {
        if (newVal !== oldVal) {
            //custom logic goes here......
        }
    }, true);
票数 1
EN

Stack Overflow用户

发布于 2016-09-20 22:03:06

试试这个:

代码语言:javascript
复制
 function onClick(e) {
     if( !$scope.isWatched ) {
         $scope.$watch("d", function () {
             console.log("12313sadad");
             $scope.isWatched = true;
        });
     }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39596134

复制
相关文章

相似问题

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