在Angular UI路由器

时间:2015-12-18 10:15:38

标签: javascript angularjs meteor iron-router angular-meteor

在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'
        })

})

1 个答案:

答案 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;
}])