如何将对象添加到AngularJS中的嵌套数组中?

如何将对象添加到AngularJS中的嵌套数组中?,angularjs,angularjs-scope,angularjs-ng-repeat,angularfire,Angularjs,Angularjs Scope,Angularjs Ng Repeat,Angularfire,我是安格拉斯的新手。我已经研究了ng重复背后的理论,但是我找不到任何好的例子来说明嵌套ng重复的双向数据绑定或对象创建。据我所知,在最近的版本中,语法发生了变化。我用的是1.1.5 我有一个包含注释对象嵌套数组的post对象。我希望能够将新的注释对象添加到帖子中的注释数组中。我试过很多不同的版本 这是我的HTML: <div id='posts' ng-controller="PostsCtrl"> <ul> <div id='po

我是安格拉斯的新手。我已经研究了ng重复背后的理论,但是我找不到任何好的例子来说明嵌套ng重复的双向数据绑定或对象创建。据我所知,在最近的版本中,语法发生了变化。我用的是1.1.5

我有一个包含注释对象嵌套数组的post对象。我希望能够将新的注释对象添加到帖子中的注释数组中。我试过很多不同的版本

这是我的HTML:

<div id='posts' ng-controller="PostsCtrl">

      <ul>
          <div id='post' ng-repeat="post in posts track by post.id">
              <div id='postMedia'>
              <img ng-click="" ng-src={{post.attachment}} />
              </div>
              <div ng-click="">
                  <div ng-click="">{{post.message}}</div>
                  <div ng-click="">{{post.created_at}}</div>
              </div>
          <h1>Comments</h1>
          <div id='comment' ng-repeat="comment in post.comments track by post.comment.id">
              <div ng-click="">{{comment.body}}</div>
          </div>
          <form ng-submit="addComment()">
            <input id="body" type="text" placeholder="Reply…" ng-model="post.comment.body">
            <input type="submit" value="Add">
          </form>
          </div>
      </ul>
    </div>

解决方案:

多亏了钱德尔马尼的回答才解决了这个问题。我稍微修改了控制器,因为我想在数据存储中使用名为body的键-

myApp.controller('PostsCtrl', ['$scope', 'angularFire',
function MyCtrl($scope, angularFire) {
var url = 'https://inviter-dev.firebaseio.com/posts';
$scope.items = angularFire(url, $scope, 'posts',  [] );

$scope.addComment = function(post,comment) {
    post.comments.push({body:comment});
}

}

]))

您的
addComment
方法的问题在于它不知道需要向哪个帖子添加评论。另外,作为注释的一部分的注释输入可以有一个独立的模型,该模型可以传递给控制器方法

您需要进行以下更改。在html中

<form ng-submit="addComment(post,commentData)">
   <input id="body" type="text" placeholder="Reply…" ng-model="commentData">
   <input type="submit" value="Add">
</form>

这就快到了。我正在将数据推送到Firebase,但评论没有正文键。我现在使用数组数据类型来保存帖子和评论。在我使用字典之前。
<form ng-submit="addComment(post,commentData)">
   <input id="body" type="text" placeholder="Reply…" ng-model="commentData">
   <input type="submit" value="Add">
</form>
$scope.addComment = function(post,comment) {
    post.comments.push(comment);
}