Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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 在ng repeat上的模型之间转换_Javascript_Angularjs - Fatal编程技术网

Javascript 在ng repeat上的模型之间转换

Javascript 在ng repeat上的模型之间转换,javascript,angularjs,Javascript,Angularjs,我正在构建一个指令Angular 1.2,它将在显示两个不同的列表之间切换-将它们视为站点上的趋势项列表和用户正在跟踪的项列表。因此,我们有一个切换,允许用户选择要显示的列表,下面有一个ng repeat显示项目 这些列表之间会有很多重叠,当用户从一个列表切换到另一个列表时,我希望这两个列表中包含的项目从传出列表中的位置转换到新列表中的位置,而不是消失和重新出现 我的问题不是如何实现我们正在使用的ngAnimate的实际动画,而是我应该如何构造控制器/数据。我想我的指令控制器有一个trendin

我正在构建一个指令Angular 1.2,它将在显示两个不同的列表之间切换-将它们视为站点上的趋势项列表和用户正在跟踪的项列表。因此,我们有一个切换,允许用户选择要显示的列表,下面有一个ng repeat显示项目

这些列表之间会有很多重叠,当用户从一个列表切换到另一个列表时,我希望这两个列表中包含的项目从传出列表中的位置转换到新列表中的位置,而不是消失和重新出现

我的问题不是如何实现我们正在使用的ngAnimate的实际动画,而是我应该如何构造控制器/数据。我想我的指令控制器有一个trendingList和一个FollowList,其中包含实际的数据项,还有一个activeList,指向当前显示的两个项目中的任何一个。所以ng repeat实际上在activeList上,切换本质上是:

$scope.toggleMode = function(){
    if ($scope.mode == 'trending') 
        $scope.mode = following; 
        $scope.activeList = followingList;
    else {/*the inverse...*/}
}
这是最合理的方法吗?如果是这样,我如何确保angular能够识别两个列表中存在的对象的相等性


还是有更简单/更干净的方法

据我所知,angular没有跟踪它重复的列表中对象的相等性。在操作DOM时触发动画,而不是在数据更改时触发动画,尽管数据更改会更改DOM。至于你应该怎么做,我没有这个问题的经验,所以希望有人能给你指出正确的方向

将常用项保留在单独的列表中,仅切换其余项。