【问题标题】:How to pass parameter with ui-sref between deeply nested objects?如何在深度嵌套的对象之间使用 ui-sref 传递参数?
【发布时间】:2015-05-14 14:43:56
【问题描述】:

因为我有如下嵌套对象:

Provider(providerId) =>> 帖子 (postId)=>> 评论 (commentId)=>> 回复 (replyId)

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

这里展示了 $stateParams 在每个步骤中的工作原理。

这里是回复状态。

$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

有什么帮助可以指导我如何在这里传递参数。

【问题讨论】:

  • 您确定 post._id 和 comment._id 正确吗?你有没有看过batarang看看值是多少?在您的示例中,该锚似乎不在 ng-repeat 中。
  • @EddieMongeJr 是的,post._id 和 comment._id 是正确的。问题仅出在 providerId 上,我不知道如何将其传递出去。顺便说一句,我通过 $scope.provider = $stateParams.providerId 传递 providerId 解决了这个问题。如果有任何其他方式可以传递参数,如果您告诉我,我将不胜感激。谢谢

标签: angularjs ui-sref


【解决方案1】:

这个链接会帮助你:)

Passing parameters in $stateProvider

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 2018-02-14
    相关资源
    最近更新 更多