如何使用angular存储对象或全局对象的引用?

时间:2014-09-02 17:17:07

标签: javascript angularjs angularjs-scope firebase ionic-framework

我希望这个问题的标题是有道理的。我需要的是一种在控制器中存储对象的引用并在另一个对象中访问它的方法。

例如,我有一个AppCtrl,我在其中启动firebase:

.controller('AppCtrl', function ($scope, $ionicModal, $timeout, $firebase) {
        var ref = new Firebase("https://test.firebaseio.com/");
        var sync = $firebase(ref);
        $scope.db = sync.$asObject();

        var authClient = new FirebaseSimpleLogin(ref, function(error, user) {
            if (error) {
            } else if (user) {
                console.log(user);
            } else {
                // user is logged out
            }
        });

        ...

在另一个控制器中我想authClient.logout(),但authClient不可用:

.controller('LogoutCtrl', function ($scope, $stateParams, $firebase) {
        authClient.logout();
})

有没有办法在第二个控制器中访问authClient而无需实例化FirebaseSimpleLogin,就像从全局变量中获取它一样?

我不确定什么是最好的方法,也许再次实例化它是个好主意..

我在这里使用firebase作为示例,但这可以是任何其他类

任何想法?

1 个答案:

答案 0 :(得分:3)

在这种情况下,angular建议使用Services

Angular服务是使用依赖注入(DI)连接在一起的可替换对象。您可以使用服务在整个应用中组织和共享代码。

<强>更新


example使用firebase和angular

进行简单登录