我有存放在firebase数据库中的待办事项,如何使用angularjs在json数组中同时获取所有待办事项。所以我可以写这样的东西。
<p ng-repeat="todo in todos">
{{todo.title}}
</p>
&#13;
或者存储待办事项的结构是否错误?
答案 0 :(得分:1)
您的数据结构中不需要额外的todo
密钥。尝试这样的结构:
{
"todos": {
"larohj5wj4qj_34qk": {
"title": "Do homework",
"checked": true
},
"utpAbn_48q5jrfKFf": {
"title": "Walk dog",
"checked": false
}
}
}
然后使用AngularFire同步此集合: code format done with Angular styleguide
<强> Plnkr Demo 强>
angular.module('todoApp', ['firebase'])
.constant('FirebaseUrl', '<my-firebase-app>')
.service('rootRef', ['FirebaseUrl', Firebase])
.controller('TodoCtrl', TodoController);
function TodoController($scope, rootRef, $firebaseArray) {
$scope.todos = $firebaseArray(rootRef.child('todos');
}
答案 1 :(得分:0)
要做到这一点,首先需要安装 AngularFire 并在index.html
然后,您需要在服务中添加对数据库的引用:
factory('ToDosManager', ['$firebase', function ($firebase) {
var ref = new Firebase("https://example123456789.firebaseio.com/");
return {
all: function() {
return $firebase(ref).$asArray();
},
get: function(toDoId) {
return otherTodo[toDoId];
}
}
}])
然后从您的控制器调用您的服务
$scope.getTodos = function(){
$scope.todos = ToDosManager.all();