Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angularjs中的更改感知列表_Javascript_Angularjs_List - Fatal编程技术网

Javascript angularjs中的更改感知列表

Javascript angularjs中的更改感知列表,javascript,angularjs,list,Javascript,Angularjs,List,我正在对现有的angularjs代码做一些工作,我有类似的东西:我在客户端有一个对象列表,我通过put请求将其传输到服务器端 现有代码只是将$scope中的对象列表按原样放入json中 我想实现一种机制,只发送自某个事件以来已更改的对象 我可以硬编码地保存另一个对象列表,并在提交更改时将其清除,但我需要更干净的东西-f.e,更改感知列表 然后,我可以在列表中做一些事情。changedObjects 我在基础研究中似乎找不到类似的东西,所以我希望你们能了解一些。我觉得这是观察者模式的一个用例。有一

我正在对现有的angularjs代码做一些工作,我有类似的东西:我在客户端有一个对象列表,我通过
put
请求将其传输到服务器端

现有代码只是将
$scope
中的对象列表按原样放入json中

我想实现一种机制,只发送自某个事件以来已更改的对象

我可以硬编码地保存另一个对象列表,并在提交更改时将其清除,但我需要更干净的东西-f.e,更改感知列表

然后,我可以在
列表中做一些事情。changedObjects


我在基础研究中似乎找不到类似的东西,所以我希望你们能了解一些。

我觉得这是
观察者模式的一个用例。有一个lib/示例来观察javascript对象中的更改。然后,您可以在
Angular
中触发一个事件以相应地执行您的工作
$watch有助于侦听$scope更改
然后AngularJS可以对照watch函数上次返回的值检查返回的值。这样AngularJS可以确定值是否已更改

$scope.$watch('list', $scope.sendNewList, true);
如果对象的新值不等于对象的旧值,即如果对象已更改,它将更新innerHtml

有关详细信息,请查看此-或


您已经介绍了Angular的一个核心功能,以及React、Vue、Ember和其他一些功能。如果它是一个核心功能,我实际上如何使用它?感谢您的快速评论@MartyUse$watch,它可以跟踪对象上的更改,如果任何对象值发生更改,它将执行。我不太喜欢AngularJS,也没有太多使用它,但肯定有一种方法可以满足您的需要。@AmitSirohiya,正如我所指出的,我对AngularJS不是特别熟悉,所以更详细的解释是,假设我有一个对象列表,我想查看该列表中的所有项目,我该怎么做?查看列表而不是返回“scope.data.myVar”返回列表。那么我如何知道列表中的哪个对象被更改了?我假设如果我查看列表,我会在
newValue
中得到整个新列表。我假设您的列表是一个对象数组。请使用$watchCollection而不是$watch