带参数的Angular js$state.go不起作用



我尝试用参数实现angular js$state.go()。但是$state.go()在没有参数的情况下运行良好。但有了参数,它就不起作用了。我已经尝试了很多例子,但没有办法。我需要在html视图中显示参数。我的州提供商是

$stateProvider
.state('home', {
url: '/',
views: {
'content@': {
templateUrl: 'content.html',
controller: 'dashCtrl'
}
},
params: {
obj: {
value:''
}
}
});   

控制器是

dashboard.controller('dashCtrl', function ($scope, $http, $state, $stateParams){
$state.go('dash_home', {obj: {value:'admin'}});
});

我的div是

<div>
<h1>welcome : {{value}} || {{obj.value}}</div>

问题出在哪里。?

您不能直接在HTML中使用参数。您首先必须将其添加到范围(或虚拟模型,如果您使用的话),例如

$scope.obj = $state.current.params.obj

当然,你必须在你要去的州的控制器中进行,而不是在那些你称之为$state.go 的地方

我发现了自己的错误。正确的代码是

$stateProvider
.state('home', {
url: '/',
views: {
'content@': {
templateUrl: 'content.html',
controller: 'dashCtrl'
}
},
params: {
value:''
}
});

控制器是

dashboard.controller('mycontroller',function($scope, $http, $state, $stateParams){
$scope.user=$state.params.registerData;
$scope.redirect=function()
{
$state.params.registerData='mycontent';
$state.go('dash_home', {registerData:$state.params.registerData});
}
});

谢谢大家。

我想您不能在params中使用对象。只需更换

params: {
obj: {
value:''
}
}

到此:

params: {
value:''
}

以及:$state.go('dash_home', {obj: {value:'admin'}});$state.go('home', {value:'admin'});

最新更新