如何存储对具有角度的对象或全局对象的引用

how to store a reference to a object or a global object with angular?

本文关键字:对象 引用 全局 何存储 存储      更新时间:2023-09-26

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

例如,我有一个AppCtrl,在那里我启动了火球:

.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,比如从全局var中获取它?

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

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

有什么想法吗?

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

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

更新


使用firebase和angular 进行简单登录的示例