ng-repeat に投稿のリストを含むビューがあります。ユーザーが投稿をクリックすると、選択した投稿の詳細ページにルーティングされます。
いくつかのルーティングをセットアップしましたが、詳細ビューに正しい投稿をロードさせるためにコントローラーに注入した id パラメーターをどうするかを理解するのに問題があります。
また、投稿の識別子として正しい値を渡しているかどうかもわかりません。投稿は Firebase に配列として保存されますが、FIrebase ID を保存するためにデータを読み込むときに何かをする必要があるかどうかはわかりません。ロードしたデータ内に明示的な一意の識別子はありません。
投稿リスト ビュー:
<div id='posts' ng-controller="PostsCtrl">
<ul>
<div id='post' ng-repeat="post in posts track by $id($index)">
<div id='postMedia'>
<img id='media' ng-click="go('/post/{{$id}}')" ng-src= {{post.attachment}} />
</div>
<div id="articleRight">
<div ng-click="go('/post')">{{post.message}}</div>
ポストコントローラー:
myApp.controller('PostsCtrl', ['$scope', 'angularFire', '$routeParams',
function ($scope, angularFire, $routeParams) {
var url = 'https://inviter-dev.firebaseio.com/posts';
$scope.items = angularFire(url, $scope, 'posts', [] );
$scope.currentPost = $scope.items[$routeParams.postid]
投稿の詳細ビュー:
<div class="container">
<h1>{{$scope.$currentPost.message}}</h1>
<ul>
<div id='postMedia'>
<img ng-click="" ng-src={{post.attachment}} />
</div>
<div ng-click="">
<div ng-click="">{{posts[$route.current.params.postid].message}}</div>
ルーティング:
$routeProvider.when('/post/:postid', {
templateUrl:'partials/post.html',
authRequired: true,
controller:'PostsCtrl'
})