我面临这个问题,因为state.go没有按预期工作
以下是各种状态的定义方式
(function (app) {
'use strict';
app.ng.requires.push('ui.bootstrap');
//app.ng.requires.push('ngGrid');
app.ng.requires.push('ui.router');
app.ng.requires.push('ngTouch');
app.ng.requires.push('ngAnimate');
app.ng.run(
['$rootScope', '$state', '$stateParams',
function ($rootScope, $state, $stateParams) {
debugger;
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
}
]
);
app.ng.config(
['$stateProvider',
function ($stateProvider) {
debugger;
var modulePath = 'modules/listBuild';
var ctrlRoot = app.root + modulePath + '/Views/';
$stateProvider
.state('recipe',
{
url: '#recipe',
templateUrl: ctrlRoot + 'selectRecipe.html'
})
.state('selectLocation',
{
url: '#selectLocation',
templateUrl: ctrlRoot + 'selectLocation.html'
})
}]);
}(window.app));
并单击事件以使用state.go
更改视图scope.goToListbuild = function () {
timeout(function () {
location.path('/' + sessionSvc.get('clientKey') + '/' + sessionSvc.get('orgKey') + '/lists/build');
state.go('recipe');
}, 10);
};
现在,当会话值发生变化时,应将用户重定向到不同的路径。当前正在发生的事情是,即使会话值改变了state.go也将其转移到较旧的URL。
我尝试了state.go和state.reload的differenet选项,但它没有工作
因此,如果这是主页的更改URL" / PQR / PQR-sec1 / lists"我点击链接它实际上回到" / ABC / ABC-sec1 / lists / build#recipe"而不是" / PQR / PQR-sec1 / lists / build#recipe"
答案 0 :(得分:2)
我认为你为你的州定义了一个糟糕的网址,例如:
$stateProvider
.state('recipe',
{
url: '/recipe', //url which looks like myDomain.com/#/recipe
templateUrl: ctrlRoot + 'selectRecipe.html'
})
.state('selectLocation',
{
url: '/selectLocation',
templateUrl: ctrlRoot + 'selectLocation.html'
});
但我建议您使用" ui-sref"在你的HTML中因为我认为你改变它onClick所以juste使用这样的东西
<a ui-sref="recipe"> </a>
如果不起作用,请尝试评论您的专栏location.path(...)