AngularJS>;使用“下一步”和“上一步”按钮循环浏览JSON文件
我有一个公文包站点,其中MAIN显示projects.json中的项目列表,然后每个项目都有自己的页面workTemplate.html,从titleX.json文件中提取数据 主项目列表(单击)-->Title.json(每页)[上一页/下一页按钮]-->另一个Tile.json 如何使用每个工作ID页上的“上一页”/“下一页”按钮循环浏览每个工作页 我已设置了一个Plunker以显示我的设置: 我想我需要使用一个工厂:AngularJS>;使用“下一步”和“上一步”按钮循环浏览JSON文件,json,angularjs,Json,Angularjs,我有一个公文包站点,其中MAIN显示projects.json中的项目列表,然后每个项目都有自己的页面workTemplate.html,从titleX.json文件中提取数据 主项目列表(单击)-->Title.json(每页)[上一页/下一页按钮]-->另一个Tile.json 如何使用每个工作ID页上的“上一页”/“下一页”按钮循环浏览每个工作页 我已设置了一个Plunker以显示我的设置: 我想我需要使用一个工厂: query: {method:'GET', params:{
query: {method:'GET', params:{workId:'works'}, isArray:true}
但不确定
我的Plunker不是100%有效,但你明白了。提前感谢 假设您有整个项目的列表。 一旦在main.html的
controller
中获得列表,您就可以拥有一个数组(或稍后的服务),在其中维护所有work.id
假设您在var myList=['test1'、'test2'、'test3'中有您的列表代码>。您可以从$stateParams.workId
获取当前work.id
。从myList
到currentWorkIndex
获取当前work.id的索引
假设您当前在test2
,那么前面的是test1
,接下来的是test2
获取它们的索引
prevWorkInd = (currentWorkIndex !== 0) ? currentWorkIndex - 1 : 0;
nextWorkInd = (currentWorkIndex !== l - 1) ? currentWorkIndex + 1 : l - 1; //l is length of myList
现在您有了上一个和下一个监视器的索引。因此找到了工作。将其存储为:
$scope.prevWorkId=myList[prevWorkId];
$scope.nextWorkId=myList[nextWorkInd]代码>
在HTML中,可以使用prev和next
用于解决方案。
请注意,此代码仍然可以优化。假设您有整个项目的列表。
一旦在main.html的controller
中获得列表,您就可以拥有一个数组(或稍后的服务),在其中维护所有work.id
假设您在var myList=['test1'、'test2'、'test3'中有您的列表代码>。您可以从$stateParams.workId
获取当前work.id
。从myList
到currentWorkIndex
获取当前work.id的索引
假设您当前在test2
,那么前面的是test1
,接下来的是test2
获取它们的索引
prevWorkInd = (currentWorkIndex !== 0) ? currentWorkIndex - 1 : 0;
nextWorkInd = (currentWorkIndex !== l - 1) ? currentWorkIndex + 1 : l - 1; //l is length of myList
现在您有了上一个和下一个监视器的索引。因此找到了工作。将其存储为:
$scope.prevWorkId=myList[prevWorkId];
$scope.nextWorkId=myList[nextWorkInd]代码>
在HTML中,可以使用prev和next
用于解决方案。
请注意,此代码仍然可以优化。假设您有整个项目的列表。
一旦在main.html的controller
中获得列表,您就可以拥有一个数组(或稍后的服务),在其中维护所有work.id
假设您在var myList=['test1'、'test2'、'test3'中有您的列表代码>。您可以从$stateParams.workId
获取当前work.id
。从myList
到currentWorkIndex
获取当前work.id的索引
假设您当前在test2
,那么前面的是test1
,接下来的是test2
获取它们的索引
prevWorkInd = (currentWorkIndex !== 0) ? currentWorkIndex - 1 : 0;
nextWorkInd = (currentWorkIndex !== l - 1) ? currentWorkIndex + 1 : l - 1; //l is length of myList
现在您有了上一个和下一个监视器的索引。因此找到了工作。将其存储为:
$scope.prevWorkId=myList[prevWorkId];
$scope.nextWorkId=myList[nextWorkInd]代码>
在HTML中,可以使用prev和next
用于解决方案。
请注意,此代码仍然可以优化。假设您有整个项目的列表。
一旦在main.html的controller
中获得列表,您就可以拥有一个数组(或稍后的服务),在其中维护所有work.id
假设您在var myList=['test1'、'test2'、'test3'中有您的列表代码>。您可以从$stateParams.workId
获取当前work.id
。从myList
到currentWorkIndex
获取当前work.id的索引
假设您当前在test2
,那么前面的是test1
,接下来的是test2
获取它们的索引
prevWorkInd = (currentWorkIndex !== 0) ? currentWorkIndex - 1 : 0;
nextWorkInd = (currentWorkIndex !== l - 1) ? currentWorkIndex + 1 : l - 1; //l is length of myList
现在您有了上一个和下一个监视器的索引。因此找到了工作。将其存储为:
$scope.prevWorkId=myList[prevWorkId];
$scope.nextWorkId=myList[nextWorkInd]代码>
在HTML中,可以使用prev和next
用于解决方案。
请注意,此代码仍然可以优化。感谢您的帮助。这个解释对于有Angular JS经验的人来说是很好的,但是对于我来说,我想我需要关于Plunker的例子。我将继续努力使你所描述的,并让你知道结果。然而,我认为这对我来说太难理解你想做什么。继续尝试plunker,如果你遇到任何问题,请告诉我。好的,plunker现在停机,将随时通知你:)很抱歉延迟回到这个问题。我试过你的方法,但对我无效。我得到的最接近的结果是使用$scope.nextWork=function(){var-workId=$stateParams.workId;var-path=('/work/'+$stateParams.workId+1);$location.path(path);}代码>但这也不起作用。你能再解释一下吗,或者提供一个演示URL,这样我就可以用你的方法再试一次了?谢谢。在循环结束时,我使用了以下var-prevWorkIndex=(currentWorkIndex!==0)?(currentWorkIndex-1):(l-1);var nextWorkIndex=(currentWorkIndex!==l-1)?(currentWorkIndex+1):(0)$scope.prevWork=$scope.allWorks[prevWorkIndex].id$scope.nextWork=$scope.allWorks[nextWorkIndex].id再次感谢,圣诞快乐:)谢谢你的这个玩笑。这个解释对于有Angular JS经验的人来说是很好的,但是对于我来说,我想我需要关于Plunker的例子。我会继续努力做你所描述的