1

AngularJS を使用して、通知のリストがあり、ユーザーがそれらの通知にコメントできるアプリケーションを作成しています。ただし、このコメント機能を実装する方法がわかりません。これまでのところ、次のものがあります。

HTML:

<div ng-repeat="notice in notices">
    <!-- details about notice -->

    <div ng-repeat="comment in notice.comments">
       <p>{{comment.user}} - {{comment.text}}</p>

       <form ng-submit="addComment()">
            <input type="text" ng-model="newComment.user">
            <textarea ng-model="newComment.text"></textarea>
            <input type="submit" value="Add comment" />
       </form>

    </div>

</div>

したがって、本質的には、通知をループしてから、ループ内でコメントをループしています。また、新しいコメントを追加するためのフォームもありますが、ここが私にとって危険な場所です。

AddComment()新しいコメント値を取得し、それを既存のオブジェクトの配列に追加し、ファクトリ経由でデータベースを更新します。ただし、新しい値は notice.comments 配列に表示されますが、新しく追加されたコメントを表示するためにコメント リストを更新する方法がわかりません。

フォーム送信によって提示された変更に対応するために、2 番目の ng-repeat 内のオブジェクトの状態を監視するにはどうすればよいですか? ディレクティブで?

4

1 に答える 1

1

notice.comments送信時にコントローラー内の配列を更新できるはずです。

$scope.addComment = function() {
    //update your DB, yada yada yada
    //Update $scope.notices
    $scope.notices[someIndex].comments.push(newComment)
}
于 2013-10-02T19:46:59.723 に答える