2015-07-10 43 views
1

也许我的问题似乎很容易解决,但自从很长时间以来,我遇到了这个问题:当我在仪表板中时,我的Firebase数据库的所有数据都可见(使用Ng-repeat)。 但我找不到解决方案来选择一个特定的项目,并在另一个页面中查看他的详细信息。AngularFire - 如何使用ng-repeat为子模板定义项目ID?

我已经测试在HTML这种方法(这是一个例子):

<div ng-repeat="post in posts"> 

<div class="card" ng-href="#/post/">"> 
<h1>{{post.title}}</h1> 
<p>{{post.content}}</p> 
</div> 

</div> 

在应用JS:

.state('tabpost', { 
    url: 'tabpost/id', 
    templateUrl: 'templates/tab-post.html', 
    controller: 'PostCtrl' 
    }) 

在服务JS(在后厂):

myApp.factory("Post", ["$firebaseArray", "$firebaseObject", function($firebaseArray, $firebaseObject) { 
var postRef = new Firebase('https://myApp.firebaseio.com/Posts/'); 
var userRef = new Firebase('https://myApp.firebaseio.com/Users/'); 
var posts = $firebaseArray(postRef); 

    var Post = { 

     all: posts, 

     get: function (postKey){ 
      var postId = $firebaseObject(postRef); 
       return $firebaseObject(eventRef.child('Posts').child(postId).child(userid)); 

       } 
      , 
     add: function (post){ 
      var postId = $firebaseArray(postRef, userRef); 
      event.userid = userRef.getAuth(); 
       return postId.$add(post); 
       } 
     } 
     return Post; 

}]); 
我的邮箱:

PS:花了16个小时来尝试一大堆已经过时的教程,我相信解决方案不会那么简单。

我昨天和今天早上已经发布了两个类似的问题,但每个建议的解决方案都没有奏效。我将非常感谢能帮助我走出僵局的人。

我还是有点麻烦jsFiddle答应我会学会使用它,一旦我会解决这个问题。

谢谢你给我时间

+0

它应该是'url:'tabpost /:id''? –

+0

你得到的错误是什么? –

+0

这是纠正,但我有同样的结果:不工作... – PositivProd

回答

0

能否请您尝试以下代码集,我已经在控制器的意见解释的变化和应用程序添加:id JS

在应用JS:

.state('tabpost', { 
    url: 'tabpost/:id', 
    templateUrl: 'templates/tab-post.html', 
    controller: 'PostCtrl' 
    }) 

PostCtrl:

myApp.controller('PostCtrl', ['$ionicFrostedDelegate', '$ionicScrollDelegate','$state','$scope', 'Post', 'Auth', '$firebaseObject', '$firebaseArray', '$routeParams', function($ionicFrostedDelegate, $ionicScrollDelegate, $state,$scope, Post, Auth, $firebaseObject, $firebaseArray, $routeParams) { 

    var PostRef = new Firebase("https://myApp.firebaseio.com/Posts"); 

    var id = $routeParams.id; //get the id from url, $routeParams is injected in controller 

    $scope.posts = Post.get(id); //call get() method of Post with the id retrieved 

    $scope.post = {'title': '', 'content': ''}; 

    $scope.auth = Auth; 
+0

我有一个错误消息:错误:无法解析'postId:post.id'状态'tabdash',谢谢为你的时间 – PositivProd

+0

嗯..猜猜需要更多的服务代码。你可以发布吗? –

+0

这样做你可以看到它! ;) – PositivProd

0

你可以使用路由提供者来做到这一点。我用它来处理我的应用程序,效果很好。

myApp.config(['$routeProvider', function($routeProvider){ 
    $routeProvider. 
     when('tabpost', { 
      templateUrl: 'tabpost/id', 
      controller: 'PostCtrl' 
     }); 
}]); 
+0

在应用JS或分离控制器?感谢您的时间.. – PositivProd

+0

@ YngDev31这应该是在appjs –

+0

好吧,所有帖子显示的页面被命名为tabdash,而单个帖子页面是tabpost。有了这个,这总是正确的,或者我必须改变你的片段?谢谢@Coding Enthusiast – PositivProd

相关问题