在Meteor的铁路由器中,我们可以使用pathFor
生成网址,例如
<a href="{{pathFor 'posts' id=1234}}">View</a>
可以生成网址http://domain.com/posts/1234
。
问题:使用Angular的UI路由器,是否相当于pathFor
?
通过下面定义的路线,我们可以通过与http://domain.com/posts/1234
类似的内容生成网址{{ pathFor 'posts' id=1234}}
。
angular.module('myApp').config(function($stateProvider) {
$stateProvider
.state('posts', {
url: '/posts/:postId',
templateUrl: 'client/posts/views/post.html',
controller: 'PostCtrl'
})
})
答案 0 :(得分:1)
您可以使用:
<a ui-sref="posts({postId:1234})">View</a>
其中posts
是州名。
请参阅here。
其他强>
要获取postId
的值并在控制器上使用它,您可以像这样使用resolve
。
$stateProvider
.state('posts', {
url: '/posts/:postId',
templateUrl: 'client/posts/views/post.html',
controller: 'PostCtrl',
resolve: {
ID : function($stateParams){
return $stateParams.postId;
}
}
})
然后将ID
注入您的控制器。
.controller('PostCtrl',
['$scope', 'ID', function($scope, ID){
// you now have the access to ID
$scope.id = ID;
}])