Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在angularjs应用程序中,在何处重复调用firebase?_Angularjs_Firebase_Angularfire - Fatal编程技术网

在angularjs应用程序中,在何处重复调用firebase?

在angularjs应用程序中,在何处重复调用firebase?,angularjs,firebase,angularfire,Angularjs,Firebase,Angularfire,我需要在每个控制器中从firebase获得一组产品,如果我不必每次都进行API调用,那将是理想的选择。使用angularfire库实现此目的的最佳方法是什么 现在我有(用咖啡脚本): 有没有办法找出两个控制器中的通用代码,并在$rootScope(或类似)级别设置产品,这样我就可以在产品返回后在productCtrl中查找?正如@tymeJV在评论中所说,我确实为阵列设置了一项服务: app.constant('FBURL', "https://my-url.firebaseio.com/")

我需要在每个控制器中从firebase获得一组
产品
,如果我不必每次都进行API调用,那将是理想的选择。使用angularfire库实现此目的的最佳方法是什么

现在我有(用咖啡脚本):


有没有办法找出两个控制器中的通用代码,并在
$rootScope
(或类似)级别设置
产品
,这样我就可以在
产品返回后在
productCtrl
中查找

正如@tymeJV在评论中所说,我确实为阵列设置了一项服务:

app.constant('FBURL', "https://my-url.firebaseio.com/");
app.factory('products', function($firebase, FBURL) {
    var ref = new Firebase(FBURL);  
    var products = $firebase(ref).$asArray();
    return products;
}
然后只需将其注入控制器,而不是(或添加到)
$firebase

app.controller 'catalogCtrl', ($scope, products) ->
    $scope.products = products
    return
在中,我使用这种方法设置了这个简单的服务包装
$firebaseSimpleLogin

app.factory('$firebaseAuth', function($firebase, $firebaseSimpleLogin, FBURL) {
    var auth = $firebaseSimpleLogin(new Firebase(FBURL));
    return auth;
});
还有一个不那么琐碎的服务,它依赖于当前的URL/路由(下面的简化代码片段,“完整”代码在github上):


创建一个服务,并在该服务中使您的数据变量start为null。在第一次调用firebase时,设置您的数据变量,并在每次后续调用时检查null,如果为null,则再次从firebase检索,否则使用存储的内容。感谢您的详细回复。如何在数组中查找
产品
?我遇到了这样一个问题:当我试图
查找它时,数组还没有返回。在上面的流程中,我应该在哪里找到呢?请阅读AngularFire返回的承诺。在本例中,
products.$loaded()。然后(函数(products){{uu.find(…
().但从角度上看,我希望您通过id将要查找的对象绑定到
$scope
。请注意,您的原始问题中没有这些内容。我的原始问题是关于如何执行
。如果不清楚,我很抱歉。我明天会尝试,如果有效,将奖励您解决方案。
app.factory('$firebaseAuth', function($firebase, $firebaseSimpleLogin, FBURL) {
    var auth = $firebaseSimpleLogin(new Firebase(FBURL));
    return auth;
});
app.factory('board', function($firebase, $firebaseAuth, FBURL, $routeParams) {
    var ref = new Firebase(FBURL+"boards/"+$routeParams.boardId);    
    var cards = $firebase(ref.child('cards')).$asArray();    
    return {
        ref: ref,
        id: $routeParams.boardId,
        cards: cards,
    }
});