如何在深层嵌套对象之间使用ui-sref传递参数?

时间:2015-05-12 09:14:28

标签: angularjs ui-sref

因为我有如下嵌套对象:

提供商(providerId)=>>发布(postId)=>>评论(commentId)=>>回复(replyId)

所以,当我在回复的最后一步时,我无法将providerId传递给回复步骤。

这里显示了每个步骤中$ stateParams的工作原理。 enter image description here

这是回复状态。

$stateProvider
      .state('reply', {
        url: '/blog/providers/{providerId}/posts/{postId}/comments/{commentId}',
        templateUrl: 'app/blog/provider/post/comment/reply/reply.html',
        controller: 'ReplyCtrl'
      });

因此我无法传递任何参数,我会收到以下错误:

GET http://localhost:9000/api/providers//posts/5551b281bcaa20002387fb31/comments/5551b3b4bcaa20002387fb32 404 (Not Found)

这是我在comment.html中的一个步骤,在回复之前将参数传递给回复步骤。我不知道在这种情况下如何检索providerId,因为我没有在这里找到它。

<div ng-repeat="comment in post.comments track by $index" >
.......
<a  ui-sref="reply({providerId: ..., postId : post._id, commentId: comment._id})"></a>

同样在replyCtrl里面,我无法访问我在html中传递的任何变量,这是我得到的错误。我只是在replyCtrl中添加了以下几行。

console.log('postId from reply state' , postId);
console.log('commentId from reply state', commentId);

所以这是我收到的错误。

ReferenceError: postId is not defined

有没有任何帮助,以指导我如何在这里传递参数。

1 个答案:

答案 0 :(得分:0)

此链接可以帮助您:)

Passing parameters in $stateProvider