我试图用参数实现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>
问题是什么。?
答案 0 :(得分:2)
您不能直接在HTML中使用参数。您首先必须将其添加到范围(或虚拟模型,如果您使用它),例如
$scope.obj = $state.current.params.obj
你必须在你要去的州的控制器中这样做,而不是那些你称之为$ state.go的那个。
答案 1 :(得分:1)
我发现了自己的错误。正确的代码是,
$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});
}
});
谢谢大家。
答案 2 :(得分:0)
我猜你不能在params中使用对象。只需替换
params: {
obj: {
value:''
}
}
到此:
params: {
value:''
}
还有:$state.go('dash_home', {obj: {value:'admin'}});
到$state.go('home', {value:'admin'});