javascript - $watch 不工作

标签 javascript angularjs

在项目发生变化时不会调用 Watch。它在加载时工作,并正确加载 map 。但是当我改变event_type时带有下拉菜单,它永远不会进入函数内部。我检查了concole.log

实际event_type确实发生了变化,它在屏幕上显示新值 {{ event_type.type }}

$scope.event_type = { id: 0, type:'All' }
$scope.$watch( 'event_type', function(val) {
    $scope.markers = Events.venues(val.type)
    }, true)

最佳答案

我认为这叫做深度潜水或深度观察。无论如何,它是 $watch 上您想要设置为 true 的第三个参数。

您还可以传入新值作为参数,而不是从 event_type 读取。如下所示。

$scope.$watch( 'event_type', function(newVal) {
    $scope.markers = Events.venues(newVal.type)
}, true);

这是一个骗子:http://plnkr.co/edit/YMmVPKDMeUcK5Pvz2Z0z?p=preview

如果这里的内容没有意义,请告诉我。

关于javascript - $watch 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27069992/

相关文章:

javascript - 在 javascript 中使用替换时不应替换属性

javascript - 当我访问另一个状态时停止一个函数

javascript - 在 Cytoscape.js 中拖动节点时使其他节点跟随

javascript - 如何将数组对象传递给 Jade

javascript - 如何在 ui-router AngularJS 中使用组件模板?

javascript - 使用 templateUrl 的单元测试指令有问题

Angular : How to reference filtered ng-repeat items from a controller

javascript - 如何通过嵌套对象/数组正确循环/ng-repeat?

javascript - 在ReactJS中,如果我们不为useEffect提供依赖数组,是否会导致该函数每次都被调用?

javascript - 如何检测swiper js中的当前幻灯片?