我使用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}}
答案 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()
是一个对象时才有效(所以当它是一个原语时不行)。但是,由于你的代码片段就是这种情况,这应该可行。