将Firebase数据添加到Angular Service



我正试图将我的Firebase对象注入到一个服务中,这样我就可以使用不同的角度控制器来访问Firebase对象的副本。

在我的应用程序的以前的工作副本中。我只将Firebase加载到控制器中:

以下示例:

  ToDo.controller('todoController',["$scope","$firebaseArray", function($scope, $firebaseArray, ToDoData){ // injecting AngularFire & ToDoData Service 

  var myData = new Firebase("https:firebase url goes here"); //create Firebase obj
  $scope.todos = $firebaseArray(myData); //Reading Database and adding to todos variable 
  $scope.historytodos = [{'title': "Old Task", 'done':true, 'timetag':new Date().toString()}];
  $scope.addTodo = function(){
    var datecreated = new Date().toString();
    $scope.todos.$add({'title':$scope.newtodo,'done':false, 'timetag': datecreated}); //push to Array 
    $scope.newtodo = '';
  };

现在我正在尝试重新创建Firebase依赖项,但要使用一个服务。以下是我尝试服务的内容。

这是错误的 Uncaught ReferenceError: Todo is not defined

我的错误服务示例:

Todo.value('fbURL', "https:firebase") //Firebase URL value service
.service('fbRef',function(fbURL){ //Firebase Data Reference Service
  return new Firebase(fbURL);
})
.service('fbArr',function(fbRef){ //Firebase Array service
  $scope.todos = $firebaseArray(fbRef);
  return $scope.todos;
});

不确定是什么导致了错误&也不太确定如何创建一个服务来保存我的Firebase对象。

首先,错误是不言自明的,Todo没有定义。你必须做一些类似的事情:

var Todo = {fbRef: "https:firebase"};

对于服务,我建议你阅读服务和工厂的信息,看看什么最适合你的特定情况,这里有一个如何在服务中做到这一点的简单例子:

.service('fb', function(){
  var connection = new Firebase(url);
  var todos = $firebaseArray(connection);
  this.url = function() { return connection;};
  this.todos = function() { return todos;};
});

相关内容

  • 没有找到相关文章

最新更新