AngularJs:UI路由器浏览器刷新,移动到第一个子状态
AngularJs: UI Router browser refresh, move to first child state?
我使用的是angular UI Router,而不是HTML5模式。以下是路由器配置。我正在为订单处理应用程序的每个步骤使用嵌套视图。订购过程的每一步都取决于前一步我的问题是,在浏览器刷新的第2步或第3步的订购过程;所有输入数据都丢失了,所以我希望用户重定向到订购过程的初始步骤1
$stateProvider
.state('wizard', {
url: "/wizard",
templateUrl: 'template/newOrder.cshtml',
controller: 'createOrderController',
controllerAs: 'vm',
data: { pageTitle: 'Wizard form' }
})
.state('wizard.step_one', {
url: '/step_one',
templateUrl: 'template/step1.cshtml',
controller: 'orderStep1Controller',
controllerAs:'vm',
data: { pageTitle: 'Wizard form' }
})
.state('wizard.step_two', {
url: '/step_two',
templateUrl: 'template/step2.cshtml',
controller: 'orderStep2Controller',
controllerAs: 'vm',
data: { pageTitle: 'Wizard form' }
})
.state('wizard.step_three', {
url: '/step_three',
templateUrl: 'template/step3.cshtml',
controller: 'orderStep3Controller',
controllerAs: 'vm',
data: { pageTitle: 'Wizard form' }
})
.state('wizard.step_four', {
url: '/step_four',
templateUrl: 'template/step4.cshtml',
controller: 'orderStep4Controller',
controllerAs: 'vm',
data: { pageTitle: 'Wizard form' }
})
;
问候,
我假设/wizard
状态实际上除了保持嵌套视图之外没有做任何事情。
您可能需要更改一些内容,使其成为一个抽象视图来保存所有状态,包括将neworder.cshtml
更改为自己的状态:
.state('wizard', {
url: "/wizard",
abstract: true,
templateUrl: 'template/newOrder.cshtml',
controller: 'createOrderController',
controllerAs: 'vm',
data: { pageTitle: 'Wizard form' }
})
可以在Ui Router GitHub 中找到更多深入的信息以及如何使用抽象
它包括关于如何执行urlRouterRedirects的gret信息,在这种情况下,根据您希望何时执行,这些信息可能会有用。你可以说,当你登陆向导视图时,重定向到新订单(例如下面)
$urlRouterProvider.when('/wwizard','/wozard/neworder');
如果您想在特定事件之后捕获它,也可以使用.otherwise
。
$urlRouterProvider.否则('/ethere');
必须像往常一样在状态上定义/否则url:
$stateProvider.state("否则",{url:"/否则"…})
相关文章:
- 而循环只设置php中输入字段中的第一个值
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- IE11中的第二个调用取消了第一个Fetch API调用
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- RxJS油门行为;立即获取第一个值
- Angular UI网格:如何通过第一个UI网格中的按钮使第二个UI网格可见
- 选择多个实例中的第一个
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 看起来第一个console.log是'It’不太对
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 节点发布错误对象的第一个“属性”
- Javascript:表单验证getElementById仅返回第一个id元素
- 仅将 CSS 规则应用于
中的第一个 ,而不分配类/ID - 如果第二个 html 元素位于第一个 html 元素上方,如何移动该元素
- 当移动到最后一个li时,返回到第一个li(使用Jquery滚动到下一个)
- 将节点从第二个移动到第一个
- 将第一个Tr移动到头部,并使用jquery将td替换为头部