Firebase child_added和ng-repeat

时间:2015-10-24 01:04:22

标签: angularjs firebase ionic

我使用child_added和ng-repeat来显示状态列表,这部分工作正常,但当我点击列表中的一个状态时,我被发送到tab / status /而不是去tab / status / :statusid。任何帮助将不胜感激。

app.js

app.controller('StatusesController', function ($scope, $filter, $state, $ionicListDelegate, $ionicActionSheet, StatusesService) {


$scope.statuses = [];

var ref = new Firebase("https://app85.firebaseio.com/statuses");

ref.on("child_added", function(snapshot, prevChildKey) {
var status = snapshot.val();
$scope.statuses.push(status);
});

})

statusescontroller

<ion-item ng-repeat="status in statuses" href="#/tab/statuses/{{status.$id}}" class="customItemSize mlSmallerFont item-icon-left item-icon-right">
            <i class="icon ion-ios-person-outline"></i>
            {{ status.update }}
</ion-item>

statuses.html

{{1}}

1 个答案:

答案 0 :(得分:1)

您似乎从AngularFire借用了一些想法,但没有实现它们的代码。目前,HTML中的{{status.$id}}没有任何价值。

要解决此问题,您应该使用AngularFire或在控制器中填充$id

ref.on("child_added", function(snapshot, prevChildKey) {
    var status = snapshot.val();
    status['$id'] = snapshot.key();
    $scope.statuses.push(status);
});

请注意,这仅在snapshot.val()是一个对象时才有效(所以当它是一个原语时不行)。但是,由于你的代码片段就是这种情况,这应该可行。