【发布时间】:2015-11-21 02:51:11
【问题描述】:
我无法设置和维护路由参数。当我设置参数时。它去正确的地方。但是,如果我更改路线,内容不会改变。我试图制作一个视图对象,但 home.name 状态不会用这种方法呈现。我只能使用两个绝对路径获取要显示的模板。
Could not resolve '#/home/Adam Harvey' from state 'home'
我找到了一个很棒的链接https://github.com/angular-ui/ui-router/wiki/URL-Routing#stateparams-service
开始:我用 ng-repeat 创建了一个简单的列表。这是一个简短的例子
$scope.iterants =
[
{
name: 'Adam Harvey',
type: 'Hotel',
dates: '01/21/2015-01/22/2015',
location: 'Rockville Maryland',
status: 'Confirmed'
},
{
name: 'Jana Harvey',
type: 'Hotel',
dates: '01/21/2015-01/22/2015',
location: 'Rockville Maryland',
status: 'Confirmed'
}
];
在我的 html 模板中,我想在每个人的姓名上放置一个 ui-sref 作为链接,以便在另一个模板上查看他们。
<td><a ui-sref="itinerary.name{{name:person.details}}">{{person.name}}</a></td>
在我的配置中,我这样设置,控制器通过了 $stateParams
.config(function config( $stateProvider ) {
$stateProvider.state( 'home.name', {
url: '/home/:name',
views: {
"main": {
controller: 'AboutCtrl',
templateUrl: 'src/app/about/about.tpl.html'
}
},
data: {pageTitle:'About'}
});
})
.controller( 'AboutCtrl', function AboutCtrl( $scope, $stateParams ) {
$stateParams.name;
});
在家庭控制器中。我已经像这样设置了我的配置和控制器......
.config(function config( $stateProvider ) {
$stateProvider.state( 'home', {
url: '/home',
views: {
"main@": {
controller: 'HomeCtrl',
templateUrl: 'src/app/home/home.tpl.html'
},
resolve: [{
name: ['$stateParams', function($stateParams){
return $stateParams.name;
}]
}]
},
data:{ pageTitle: 'Home' }
});
})
更新
【问题讨论】:
-
不应该在 home.name 中解析 name 而不是 home 吗?另外,我相信 resolve 需要一个对象,而不是一个数组。
标签: angularjs angular-ui-router