有没有办法在命中特定状态时定义$ stateParams-values。 我有一个父状态,有2个孩子都使用相同的视图:
.state('customer {
url: '/customer',
templateUrl: '/customer/overview/customer.overview.html',
resolve: customerResolve,
controller: 'customer.overview.controller',
params: { type: null }
})
.state('customer.a' {
url: '/a',
templateUrl: '/customer/overview/customer.overview.html',
resolve: customerResolve,
controller: 'customer.overview.controller',
params: { type: 'a' }
})
.state('customer.b' {
url: '/b',
templateUrl: '/customer/overview/customer.overview.html',
resolve: customerResolve,
controller: 'customer.overview.controller',
params: { type: 'b'}
})
他们都有同样的决心:
var customerResolve = {
resolvedCustomers: ['$state', '$stateParams', function ($state, $stateParams) {
if ($stateParams.type == "a")
{
//resolve data
}
else if ($stateParams.status == "b") {
//resolve data
}
}]
}
当我导航到 ... / customer / a 时,我确实达到了我的决心,但我希望$stateParams.type
为a
,但它是null
。 ... / customer / b 也是如此。
值为null
,因为父状态是以这种方式定义的。我无法删除parent-params,因为这将在解析中完全删除我的type-parameter。我只是想在我的父状态中定义type-parameter,但是不应用像'null'这样的值,我希望我的子状态填充该类型参数。
我可以使用ui-sref来实现它:<a ui-sref="customer({type: 'a'})">Customer type A</a>
但是我想通过导航到url来设置type-parameter。如果需要更清晰,我可以提供一个plunkr。
答案 0 :(得分:0)
我最近这样做的方式
simple_form
然后在您的控制器中
myApp.config( function($routeProvider) {
when('/user/:userID', {
templateUrl: 'app/partials/user.html',
controller: 'userPageCtrl'
})
});
和myApp.controller('userPageCtrl', ['$scope','$routeParams',
function($scope, $routeParams) {
console.log("user controller");
console.log("route param", $routeParams);
});
将拥有userID,并且$routeParams
,/user/2
等会移动网址
编辑:我认为这是以类似的方式完成的,即使用/user/3
语法,以角度ui
答案 1 :(得分:0)