javascript - 更新数组中的内部对象时不执行监视

标签 javascript angularjs

我正在使用 angularJS 创建一个项目。在我的项目中使用 watch 时遇到问题。我正在更新数组的内部对象。

 $scope.$watch('demoData',function(_n, _o) {
      console.log("watchExecuting")
      },true); 

这是 Jsfiddle: http://jsfiddle.net/HB7LU/29132/

最佳答案

您需要像下面这样使用 ng-model 值监视输入

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
 
	$scope.demoData = []
  $scope.lid = "f0b751df4f0444d8";
  $scope.demoData[$scope.lid] = {"textBox":"test"}
 	console.log( $scope.demoData)
  $scope.demo = function(){
   //console.log( $scope.demoData)
  }
  $scope.$watch('demoData[lid].textBox',function(_n, _o) {
  console.log("watchExecuting")
  },true);
});
<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.12/angular.js" data-semver="1.4.9"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
 <input type = "text" ng-model="demoData[lid].textBox" ng-change="demo()">
  </body>

</html>

关于javascript - 更新数组中的内部对象时不执行监视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43471051/

相关文章:

javascript - 如何 .append() 一个对象

javascript - 所有上传完成后的 FineUploader 客户端事件

javascript - 在对象上使用 jQuery grep

javascript - 如何更改 Mongoose 中文档子数组的对象内的 bool 值?

javascript - AngularJS 架构 : mono-repo or multi-repo

javascript - 单击按钮后AngularJS输出文本框值

javascript - 数字作为 javascript 对象的属性

javascript - Angular Material 无法正常工作

javascript - 限制正斜杠的指令

angularjs - 带有对象数组的 Angular Material md-switch