****编辑:问题解决了! Neuronet的解决方案就是答案:
<div ng-repeat="post in $ctrl.posts">
<textarea class="postBox" ng-model="$ctrl.comment.content" name="content" /></textarea>
<input type="submit" id="submit" value="Submit" ng-click="$ctrl.postCommentSubmit(post.id)" />
</div>
以下是我的原帖:
过去3个小时我一直在解决这个问题。我有一系列帖子,我已经从我的控制器传递到我的模板,名称为&#34; posts&#34;。帖子中的每个帖子都是一个包含各种键值对的数组,例如&#34; id&#34; (值为整数),&#34;内容&#34; (值是一个字符串)等。我想包含一个表单来发送一个PostComment帖子到我的api。 PostComment帖子要求我发送一个外键(代表相关帖子)和一个内容字段。我希望从ng-repeat动态获取外键。
我的模板如下所示:
<div ng-repeat="post in $ctrl.posts">
....
<form ng-submit="$ctrl.postCommentSubmit()">
<input class="hidden" type="text" ng-model="$ctrl.postCommentArray.postForeignKey" value="{{ post.id }}" name="postid" />
<textarea class="postBox" ng-model="$ctrl.postCommentArray.content" name="content" /></textarea>
<input type="submit" id="submit" value="Submit" />
</form>
</div>
我的控制器的相关部分如下所示:
self.postCommentArray = {
content: '',
postForeignKey: '',
};
我试图从post.id获取外键(&#34;帖子&#34;来自ng-repeat中的$ ctrl.posts中的帖子)。我似乎无法找到一种方法来做到这一点。我试过了两个值=&#34; {{post.id}}&#34;和ng-value =&#34; {{post.id}}&#34;但由于各种原因都不起作用。 Ng值仅适用于无线电,但我无法自动检查选项,并且值不能与ng-model一起使用,因为它们都在竞争设置值。
对于任何可以帮助我的人,我都非常感激。
答案 0 :(得分:2)
你为什么使用CommentArray?只需使用评论作为您的模型 您可以在postCommentSubmit
中传递帖子ID<div ng-repeat="post in $ctrl.posts">
<textarea class="postBox" ng-model="post.comment.content" name="content" /></textarea>
<input type="submit" id="submit" value="Submit" ng-click="$ctrl.postCommentSubmit(post.id)" />
</div>
答案 1 :(得分:0)
我建议您在控制器中使postCommentSubmit
函数看起来像这样:
$ctrl.postCommentSubmit = function (post, foreign_id) {
$http.post('/api', {
"post_comments": post["post_comments"],
"user": post["user"],
"timestamp": post["timestamp"],
"updated": post["updated"],
"content": post["content"],
"post_likes": post["post_likes"],
"id": post["id"],
"foreign_id": foreign_id
})
}
然后在你的html ng-submit:
<form ng-submit="$ctrl.postCommentSubmit(post, $ctrl.postCommentArray.postForeignKey)">