Angular UI 路由器中 Iron Router 的 pathFor 等价物
Equivalent of Iron Router's pathFor in Angular UI Router
在Meteor的Iron Router中,我们可以用pathFor
生成一个URL,比如
<a href="{{pathFor 'posts' id=1234}}">View</a>
可以生成URLhttp://domain.com/posts/1234
.
问题: 使用 Angular 的 UI 路由器,是否有等效于 pathFor
的路由器?
这样,通过下面定义的路由,我们可以通过类似于 {{ pathFor 'posts' id=1234}}
.
的方式生成 URL http://domain.com/posts/1234
angular.module('myApp').config(function($stateProvider) {
$stateProvider
.state('posts', {
url: '/posts/:postId',
templateUrl: 'client/posts/views/post.html',
controller: 'PostCtrl'
})
})
您可以使用:
<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;
}])
在Meteor的Iron Router中,我们可以用pathFor
生成一个URL,比如
<a href="{{pathFor 'posts' id=1234}}">View</a>
可以生成URLhttp://domain.com/posts/1234
.
问题: 使用 Angular 的 UI 路由器,是否有等效于 pathFor
的路由器?
这样,通过下面定义的路由,我们可以通过类似于 {{ pathFor 'posts' id=1234}}
.
http://domain.com/posts/1234
angular.module('myApp').config(function($stateProvider) {
$stateProvider
.state('posts', {
url: '/posts/:postId',
templateUrl: 'client/posts/views/post.html',
controller: 'PostCtrl'
})
})
您可以使用:
<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;
}])