AngularJS模式,用于通过多个异步调用持久化记录选择?

AngularJS模式,用于通过多个异步调用持久化记录选择?,angularjs,angularjs-scope,angularjs-ng-repeat,Angularjs,Angularjs Scope,Angularjs Ng Repeat,我们正在为一个相当大的应用程序开发CRUD模式。我们正在使用一种常见的UI模式来定义一对多关系,其中记录通过复选框关联。挑战在于通过刷新记录列表(以及相关ng模型)的异步调用(搜索/排序)来持久化选择(选中/未选中)。我想听听更高级的AngularJS用户(我是一个noob)对此的最佳实践是什么?任何反馈都将不胜感激 编辑 展示我如何用我目前对角度的理解来解决这个问题。如果你有更好的方法,请告诉我 我认为你可以保留一个单独的选定名称集合。因此,下次筛选列表时,您只需在集合中查找,以保持项目处于

我们正在为一个相当大的应用程序开发CRUD模式。我们正在使用一种常见的UI模式来定义一对多关系,其中记录通过复选框关联。挑战在于通过刷新记录列表(以及相关ng模型)的异步调用(搜索/排序)来持久化选择(选中/未选中)。我想听听更高级的AngularJS用户(我是一个noob)对此的最佳实践是什么?任何反馈都将不胜感激

编辑


展示我如何用我目前对角度的理解来解决这个问题。如果你有更好的方法,请告诉我

我认为你可以保留一个单独的选定名称集合。因此,下次筛选列表时,您只需在集合中查找,以保持项目处于选中状态。您可以通过绑定控制器中的某个变量(arrSelected)来实现,也可以创建一个单独的服务。

我认为您可以维护一个单独的选定名称集合。因此,下次筛选列表时,您只需在集合中查找,以保持项目处于选中状态。您可以通过绑定控制器中的某个变量(arrSelected)来实现,也可以创建一个单独的服务。

您是否考虑过使用过滤器而不是重新蚀刻。当然,这实际上取决于您计划拥有多少项,但我已经成功地过滤了一个包含5000项的嵌套JSON对象

下面是完整的plunker:

亮点: 在index.html中,为重复添加|过滤器

<tr ng-repeat="user in users | filter:userFilter">
作为奖励,我在ng类中添加了一个字母,以显示哪个字母突出显示


非常简单的代码,但即使在人们改变事情的时候,这也会给你带来完全的持久性。您现在甚至可以尝试添加一个带有ng model绑定的
标记,比如$scope.filteredName。然后,您需要做的就是将JS添加到过滤器中,以便对部分名称进行更深入的过滤。

您是否考虑过使用过滤器而不是重新蚀刻。当然,这实际上取决于您计划拥有多少项,但我已经成功地过滤了一个包含5000项的嵌套JSON对象

下面是完整的plunker:

亮点: 在index.html中,为重复添加|过滤器

<tr ng-repeat="user in users | filter:userFilter">
作为奖励,我在ng类中添加了一个字母,以显示哪个字母突出显示


非常简单的代码,但即使在人们改变事情的时候,这也会给你带来完全的持久性。您现在甚至可以尝试添加一个带有ng model绑定的
标记,比如$scope.filteredName。然后,您需要做的就是将JS添加到过滤器中,以便对部分名称进行更深入的过滤。

这听起来像是一个“您能为我编写此程序吗”类型的问题,这是一种不可接受的类型。显示您迄今为止尝试了什么以及您遇到了什么问题,或者希望这个问题很快解决。我的第一个倾向是创建一个
$scope.selectedUsers=[]
,并在选中/取消选中列表中的项目时填充它,但这似乎有点草率?我认为这可能是最简单的方法,Brian。然后通过检查selectedUsers中是否存在,为每行设置selected状态。如果从列表中删除所选用户,则selectedUsers中的用户将不再有效。那很好……除非后来有人打电话叫他们回去,他们突然又被选中了。(还有另一种可能是保留ng模型的使用,但我想在推荐它之前先试用一下。你有兴趣吗?)Thanks@SMcCrohan,我对ng模型方法非常好奇。我真的希望能有办法利用它。我会尽快把小提琴放在一起,然后把它寄出去。我喜欢你的照片。有什么应用程序可以做吗?顺便说一句,如果你没有,看看资料可能会有帮助这听起来像是一个“你能为我编程吗”类型的问题,这是一种不可接受的类型。显示您迄今为止尝试了什么以及您遇到了什么问题,或者希望这个问题很快解决。我的第一个倾向是创建一个
$scope.selectedUsers=[]
,并在选中/取消选中列表中的项目时填充它,但这似乎有点草率?我认为这可能是最简单的方法,Brian。然后通过检查selectedUsers中是否存在,为每行设置selected状态。如果从列表中删除所选用户,则selectedUsers中的用户将不再有效。那很好……除非后来有人打电话叫他们回去,他们突然又被选中了。(还有另一种可能是保留ng模型的使用,但我想在推荐它之前先试用一下。你有兴趣吗?)Thanks@SMcCrohan,我对ng模型方法非常好奇。我真的希望能有办法利用它。我会尽快把小提琴放在一起,然后把它寄出去。我喜欢你的照片。有什么应用程序可以做吗?顺便说一句,如果你没有,看看资料来源可能会有帮助。我喜欢这种服务方式。最好将选择存储在本地存储器中,以防止页面刷新时丢失。服务方法将使其非常可移植。谢谢将集合设为散列,则查找时间/开销为0:
ng model=“selectedItems[item.id]”
Yep,这也是我的想法。您仍然需要注意从列表中删除但已重新读取的项目的选择状态。我喜欢服务方法。最好将选择存储在本地存储器中,以防止页面刷新时丢失。服务方法将使其非常可移植。谢谢将集合设为散列,则查找时间/开销为0:
ng model=“selectedItems[item.id]”
Yep,这也是我的想法。你还需要注意selec吗