在工厂之间分享价值

sharing value between factories

本文关键字:分享 之间 工厂      更新时间:2023-09-26

Hi下面是我正在处理的Angular中控制器的代码。我引用的是svcSPoint,它是在模块中注册的工厂。我想不通的是这个。我可以访问svcSPoint在构造函数中,因为ng注释正在注入工厂。但是,我无法访问函数SelectChanged()中的svcSPoint

我试图实现的是在DOM中触发事件时设置工厂的值。我如何在全局中获取一个值,以便在一堆控制器和工厂中访问它。

   'use strict';
class NavbarController {
    //start-non-standard
    menu = [{
        'title': 'Home',
        'state': 'main'
    }];
    isCollapsed = true;
    //end-non-standard
    constructor(Auth, svcSPoint) {
        this.isLoggedIn = Auth.isLoggedIn;
        this.isAdmin = Auth.isAdmin;
        this.currentuser = svcSPoint.currentuser;
        this.scopeSelect = 'NAL';
        this.scopeSelects = ['NAL', 'USL', 'CAD'];
        svcSPoint.scopeSelection = this.scopeSelect;
        this.svcSPoint = svcSPoint;
    }

    SelectChanged() {
      svcSPoint.scopeSelection = this.scopeSelect;
    }
}
angular.module('nalAngularDashApp')
    .controller('NavbarController', NavbarController);

对于任何有同样问题并开始学习角度的人。当我把代码从工厂改为服务时,它就开始工作了。因为每次服务保留所有全局值时,它都被实例化为一个类。我正在使用服务在控制器和指令之间共享数据。