2017-12-02 11 views
1

私はこのAngular ng-repeatは配列内のオブジェクトを取得しますか?

<% post.comments.comment_body%> 

を行うとき、私は「ドン、

オブジェクトは、コンソールのコメントだけで罰金を示し

を私はlaravel 5.5を使用していると私がコメントを取得しようとしています私はこの

<% post.comments%> 
を行うときtは任意のコンテンツ

を取得します

私は、コメントに関連するオブジェクトの配列を取得します。特定の情報を取得しようとしていますが、表示されていません。ここ

は私が

ポストコントローラー

public function getPosts() 
{ 
    $posts = Post::with('user') 
       ->with(['likes' => function ($query) { 
          $query->whereNull('deleted_at'); 
          $query->where('user_id', auth()->user()->id); 
         }]) 
        ->with(['comments' => function($query) { 
         $query->where('user_id', auth()->user()->id); 
        }]) 
        ->get(); 
    $response = new Response(json_encode($posts)); 
    $response->headers->set('Content-Type', 'application/json'); 


    $data = $posts->map(function(Post $post) 
    { 
     $user = auth()->user(); 

     if($user->can('delete', $post)) { 
      $post['deletable'] = true; 
     } 

     if($user->can('update', $post)) { 
      $post['update'] = true; 
     } 

     $post['likedByMe'] = $post->likes->count() == 0 ? false : true; 
     $post['likesCount'] = Like::where('post_id', $post->id)->get()->count(); 
     $post['createdAt'] = $post->created_at->diffForHumans(); 
     $post['createdAt'] = $post->updated_at->diffForHumans(); 


     return $post; 
    }); 

    return response()->json($data); 
} 

main.js

$scope.getPosts = function(){ 

    $http.get('/auth/posts').then(function(data){ 

      $scope.myposts = data.data; 

      console.log(data.data); 
      }).then(function(result, status, header, config){ 

      }); 
    }; 




$scope.getPosts(); 

HTML

持っているものです10
<div id="mypost" class="col-md-8 panel-default" ng-repeat="post in myposts "> 
      <div id="eli-style-heading" class="panel-heading"><a class="link_profile" href="/profile/<% post.user.name | lowercase %>"><% post.user.name %></a></div> 
      <div class="panel-body panel" ng-init="getLikeText(post); getLikecount(post)"> 


      <i style="color:tomato; float:right; font-size:24px;" ng-click="like(post); toggle = !toggle" 
      ng-class="{[noheart] : !post.likedByMe, [heart]: post.likedByMe }"> 
       <h3 style="font-size:20px; margin:20px 0px; text-align:center;" ng-bind="post.likesCount"> </h3> 
      </i> 


       <figure> 
        <p class="mybody2" ng-model="post.body" editable-text="post.body" e-form="textBtnForm"> <% post.body %></p> 
        <p name="post.created_at" ><% post.createdAt %> </p> 
       </figure> 
       <span> 

       <i style="color:red;" class="glyphicon glyphicon-remove" ng-click="deletePost(post)" ng-if="post.deletable"></i> 


         <button ng-if="post.update" class="btn btn-default" ng-click="textBtnForm.$show()" ng-hide="textBtnForm.$visible"> 
         Edit 
         </button> 

        <span><button ng-if="post.update" type="submit" class="btn btn-primary" ng-click="updatePost(post)">Update</button></span> 
       </span> 
      </div> 

      <div id="comments" class="col-md-offset-2 panel-default"> 
       <div style="font-size:10px;" id="eli-style-heading" class="panel-heading"><h6><% post.comments[0].name %><h6></div> 
        <figure> 
         <p style="padding:10px; word-wrap:break-word;"> <% post.comments[0].comment_body%></p> 
        </figure> 
       </div> 
      </div> 


     </div> 
+0

:フロントエンドで問題が発生した場合、公開バックエンドコードには意味がありません。場合);バックエンドから取得しているJSONの例を入れてください。 – skyboyer

+0

明示的な 'ng-bind'はインライン式よりも読みやすくなります。それは本当に読みにくいです。 – skyboyer

答えて

1

post.commentsは、上記のmypostと同じ方法で配列されます。投稿と同じ方法でコメントを反復する必要があります。

<div id="comments" class="col-md-offset-2 panel-default"> 
    <div ng-repeat="comment in post.comments"> 
     <div style="font-size:10px;" id="eli-style-heading" class="panel-heading"> 
      <h6><% comment.name %><h6> 
     </div> 
     <figure> 
      <p> <% comment.comment_body%></p> 
     </figure> 
    </div> 
</div> 
+0

私にこれをテストさせてください。 – BARNOWL

+0

ありがとう、ありがとう – BARNOWL

関連する問題