角度 UI 路由器 - 在没有参数的情况下从一个状态转换到同一状态失败
Angular ui router - Transistion from one state to same state without parameters fails
Plunker Demo
<script>
var myapp = angular.module('myapp', ["ui.router"])
myapp.config(function($stateProvider, $urlRouterProvider) {
// For any unmatched url, send to /route1
$urlRouterProvider.otherwise("/dashboard")
$stateProvider
.state('dashboard', {
url: '/dashboard',
templateUrl: 'dashboard.html',
controller: 'MainCtrl'
})
.state('verify', {
url: '/verify?email&code',
templateUrl: 'verify.html',
controller: 'verifyCtrl'
})
});
myapp.controller('MainCtrl', function($scope,$state) {
$scope.goTo = function () {
$state.go('verify',{'email':'param@test.com', 'code': {'name': 'test name'}});
}
})
myapp.controller('verifyCtrl', function($scope, $stateParams) {
$scope.email = $stateParams.email;
$scope.code = $stateParams.code.name;
})
</script>
当从带参数转换的状态导航到没有参数的相同状态时,它不起作用。
在演示中,首先单击"使用电子邮件和代码验证",然后单击其他链接"在没有参数的情况下验证"。它将无法正确导航。
状态属性
通常在从一种状态转换到另一种状态时继承。如果未定义参数,这也会导致它们被复制。使用inherit=false
将阻止这种情况。要在 ui-serf 中使用此选项,我们有 ui-sref-opts
属性。
Demo-Plunker
在 HTML 中:
<a ui-sref="verify" ui-sref-opts="{inherit: false}">verify without params</a>
在 JS 中:
$state.go('verify',{},{inherit:false});
相关文章:
- 我如何为列出的选项卡元素编写一个Protractor测试,它会检查它是否's是否处于活动状态
- 制作一个按钮倒计时计时器,该计时器将在5分钟后永久禁用,即使在页面刷新时也应保持禁用状态
- reactjs-redux,是否可以有一个由2个组件使用的状态
- 如何将JavaScript自动POST的状态代码获取到另一个域
- $stateParams,如何将值从一个状态传递到另一个状态
- 成功ajax:如果是200状态代码,则运行函数else另一个函数
- 导航到另一个页面后,复选框状态会更改
- 在单击按钮时激活按钮的悬停状态,直到单击另一个按钮(Javascript/JQuery)
- 如何从一个组件访问另一个组件的状态
- 如何将链接状态设置为在用户访问另一个页面之前保持
- 将函数的返回传递到另一个状态
- 创建一个复选框按钮的散列,这些按钮在单击时在Twitter Bootstrap Button组中处于活动状态
- 如何使单选按钮在选择一个选项(CSS)后显示为选中状态
- 使用AngularJS在ng重复中从一个状态到另一个状态制作动画
- 多个复选框中的一个应始终保持未选中状态
- 从一个正在运行的PHP代码中,了解如何更新DIV标记中的状态
- Angular ui路由器:如何阻止访问一个状态
- 当一个复选框处于活动状态时,禁用所有复选框
- Angular 1:最后一个复选框没有'刷新页面后不要保持选中状态
- 我如何才能进入一个完整的角度状态应用程序