Javascript 角度ui路由器,如何用更新的url嵌套状态
我想知道在运行类似向导的设置时如何将三个状态连接在一起。 我目前正在开发的应用程序有一个“参数”屏幕,要求用户分3步输入一些参数。这3个步骤应在同一页上合并,但当前步骤应仅在需要填写该特定步骤时可见 有点像这样: 用户开始于:Javascript 角度ui路由器,如何用更新的url嵌套状态,javascript,angularjs,angular-ui,angular-ui-router,Javascript,Angularjs,Angular Ui,Angular Ui Router,我想知道在运行类似向导的设置时如何将三个状态连接在一起。 我目前正在开发的应用程序有一个“参数”屏幕,要求用户分3步输入一些参数。这3个步骤应在同一页上合并,但当前步骤应仅在需要填写该特定步骤时可见 有点像这样: 用户开始于:parameters/step-1 第一个div是可见的 第二个div被隐藏(或处于某种阻塞/锁定状态) 第三个div被隐藏(或处于某种阻塞/锁定状态) 用户填写步骤1并导航到参数/step-2 第一个div是可见的 第二个div可见 第三个div被隐藏(或处于某种阻
parameters/step-1
- 第一个div是可见的
- 第二个div被隐藏(或处于某种阻塞/锁定状态)
- 第三个div被隐藏(或处于某种阻塞/锁定状态)
参数/step-2
- 第一个div是可见的
- 第二个div可见
- 第三个div被隐藏(或处于某种阻塞/锁定状态)
参数/step-3
- 第一个div是可见的
- 第二个div可见
- 第三个div可见
.state('test.parameters', {
url: "/parameters",
templateUrl: "views/partials/enter-parameters.html"
})
.state('test.parameters.step1', {
url: "/step-1",
templateUrl: "views/partials/step1.html"
})
.state('test.parameters.step2', {
url: "/step-2",
templateUrl: "views/partials/step2.html"
})
.state('test.parameters.step3', {
url: "/step-3",
templateUrl: "views/partials/step3.html"
})
描述您的确切示例。也有人对这篇文章发表了评论,并加了一句。我已经调整了文章中的代码以适合您的示例
要回答这里的问题,您要做的是将test.parameters设置为抽象状态,这意味着您不能直接引用它,但它会为您提供test.parameters的抽象url。一旦导航到某个抽象状态的子级(由用户或脚本中的某个部分),url将与子url一起更新为抽象状态的url(在您的示例中为[mainUrl]/parameters/test1)。每个test.parameters.step[x]状态都是抽象状态的子级,您可以使用您提到的templateUrl中标记中的sref元素在它们之间切换。我留下$urlRouterProvider是为了向您展示如何访问抽象状态的第一步
$urlRouterProvider.otherwise('/test.parameters/step1');
$stateProvider
.state('test.parameters', {
abstract: true,
url: '/parameters',
templateUrl: "views/partials/enter-parameters.html"
})
.state('test.parameters.step1', {
url: '/step1',
templateUrl: "views/partials/step1.html"
})
.state('test.parameters.step2', {
url: '/step2',
templateUrl: "views/partials/step2.html"
})
.state('test.parameters.step3', {
url: '/step3',
templateUrl: "views/partials/step3.html"
})
您是否必须为每个步骤使用单独的视图?在我看来,你最好只使用ngShow/ngHide(或ngIf)them一个好建议,我会试试看;)感谢您的回答,但这种方法的“问题”在于它没有将3个步骤加入到一个页面(或视图)中。他们被调换了。在我的例子中,步骤2必须在步骤1完成后出现在步骤1的下面。啊,对不起,忽略了这一部分。除了潘·斯塔夫给你的小费(对你有用吗?),你还可以试试has。您将添加三个命名视图,并在每个步骤[x].html文件中使用带有sref参数的标记来填充每个连续视图。只是一个想法:)我想,在我的应用程序中,对每个具体步骤都有深入的链接不是一个好主意。所以潘·斯塔夫给的小费让人大开眼界。但我仍然对我最初问题的解决方案感兴趣。我目前的解决方案是基于这样的:好吧,为了回答你最初的问题,我创建了一个网站,向你展示了如何进行必要的状态更改,以在你链接的网站上获得效果。没有花哨的动画和变量更新,但是你可以自己添加。