添加$ stateProvider

时间:2015-07-19 19:52:34

标签: angularjs mean-stack

我一直致力于本教程:Thinkster MEAN tutorial

我正在尝试为项目添加另一个$stateProvider。它将用于为现有注释创建注释,但我不知道如何使用其:id。 以下是我尝试的代码:

$stateProvider
.state('home', {
  url: '/home',
  templateUrl: '/home.html',
  controller: 'MainCtrl',
  resolve: {
      postPromise: ['posts', function (posts) {
          return posts.getAll();
      }]
  }
})
.state('posts', {
    url: '/posts/:id',
    templateUrl: '/posts.html',
    controller: 'PostsCtrl',
    resolve: {
        post: ['$stateParams', 'posts', function ($stateParams, posts) {
            return posts.get($stateParams.id);
        }]
    }
})
.state('comments', {
    url: '/comments/:id',
    templateUrl: '/comments.html',
    controller: 'CommentsCtrl',
    resolve: {
        post: ['$stateParams', 'comments', function ($stateParams, comments) {
            return comments.get($stateParams.id);
        }]
    }
});

对于comments状态,我知道代码是错误的,但我只是在其中加入一些代码以便更好地理解。我对它需要的东西感到困惑,所以我试图改变url: '/posts/:id/comments/:id',但它不起作用。

另外,我想知道下面的代码是否可以用于导航:

<a href="#/comments/{{comment._id}}"> // don't know whether it's correct
    {{comment.body}}
</a>

1 个答案:

答案 0 :(得分:2)

您编写的$stateProvider代码是正确的,您应该使用ui-sref指令来创建href属性

<a ui-sref="comments({id: comment._id})"> // will create a href
    {{comment.body}}
</a>