This question is might be similar to this but with different requirements.由于我无法发表评论(需要50分),我正在复制这个问题.
我想简单地访问控制器内模板中ui-sref发送的参数,而不在状态URL中提及它们.
类似于使用以下链接将状态转换为带有foo和bar参数的home:
<a ui-sref="home({foo: 'fooVal', bar: 'barVal'})">Go to home state with foo and bar parameters </a>
在控制器中接收foo和bar值:
state('home', {
url: '/:foo',
views: {
'***whatIsThis***': {
templateUrl: 'home.html',
controller: 'MainRootCtrl'
},
app.controller('SomeController', function($scope, $stateParam) {
//..
var foo = $stateParam.foo; //getting fooVal
var bar = $stateParam.bar; //getting barVal
//..
});
我在控制器中为$stateParam定义了未定义的内容.
有人可以帮我理解如何完成它吗?我想在没有添加到URL的情况下获得bar
最佳答案 如果您的某些参数不应显示在URL中,则需要组合url和params:
.state('home', {
url: '/:foo',
params: {
foo: 'default value of foo',
bar: 'default value of bar'
},
...
})
然后正确使用$stateParams:
.controller('SomeController', ['$scope', '$stateParams', function ($scope, $stateParams) {
// ... (use $stateParams)
}])
而且,如果你仍然卡住了,请看看这个working codepen demo.