有条件地,我要求route
我的申请到一条新路径。所以我想知道我申请的当前url
。
如何从状态toState.name
获取当前网址?
这是我的情景:
.state('serialCreateCase', {
url: '/sn={serialNumber}', //sn=12345;
templateUrl:'app/createCase/create-case.html',
controller: 'createCaseController as ctrl',
data: {
requireLogin: false
}
这是条件:
if(toState.name==="serialCreateCase"){ // i am getting proper result
console.log('toState.name', toState );
$rootScope.goToView("serialCreateCase"); //i am asking to go there. but not works! //sn=12345;
event.preventDefault();
}
提前致谢。
答案 0 :(得分:2)
由于您使用的是states
您应该使用此方法
$state.go("serialCreateCase", {sn: 12345});
这会将用户发送到状态serialCreateCase
并带有数据
Key : sn
Value : 12345
修改强>
控制器内部的代码应如下所示
if (toState.name === "serialCreateCase") { // i am getting proper result
console.log('toState.name', toState);
$state.go("serialCreateCase", { sn: 12345 });
event.preventDefault();
}
答案 1 :(得分:0)
编辑代码:
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
var curentpath = fromState.url;
var split = curentpath.split(':');
var params = $stateParams.sn;
var mainUrl = split[0] +params;
console.log(mainUrl);
});
&安培;&安培;路线:
.state('serialCreateCase', {
url: '/sn={serialNumber}', //sn=12345;
templateUrl:'app/createCase/create-case.html',
controller: 'createCaseController as ctrl',
data: {
requireLogin: false
}