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