AngularJS>;使用“下一步”和“上一步”按钮循环浏览JSON文件

AngularJS>;使用“下一步”和“上一步”按钮循环浏览JSON文件,json,angularjs,Json,Angularjs,我有一个公文包站点,其中MAIN显示projects.json中的项目列表,然后每个项目都有自己的页面workTemplate.html,从titleX.json文件中提取数据 主项目列表(单击)-->Title.json(每页)[上一页/下一页按钮]-->另一个Tile.json 如何使用每个工作ID页上的“上一页”/“下一页”按钮循环浏览每个工作页 我已设置了一个Plunker以显示我的设置: 我想我需要使用一个工厂: query: {method:'GET', params:{

我有一个公文包站点,其中MAIN显示projects.json中的项目列表,然后每个项目都有自己的页面workTemplate.html,从titleX.json文件中提取数据

主项目列表(单击)-->Title.json(每页)[上一页/下一页按钮]-->另一个Tile.json

如何使用每个工作ID页上的“上一页”/“下一页”按钮循环浏览每个工作页

我已设置了一个Plunker以显示我的设置:

我想我需要使用一个工厂:

      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