如何将未导出的服务导入角度2组件?

时间:2017-07-24 21:22:21

标签: angular typescript service

我知道我是否有导出服务,

import { Injectable } from '@angular/core';
@Injectable()
export class StudentService {
}

我可以将此服务导入我的组件:

import { StudentService } from "./student-.service";

但是,如果我的服务不是导出类,如何将此未导出的服务导入角度2组件?

(function() {
    "use strict"

    class StudentService {

    }  
    angular.module('test').service('StudentService');
})();

我的组件和服务不在同一个文件夹/模块中。

我的组件在里面:AFolder / Student / student.component.ts

我的服务在里面:BFolder / Shared / student.service.js

AFolder和BFolder都在MainFolder下。

MainFolder

-AFolder

-BFolder

我无法从Google和StackOverflow找到我的问题的解决方案。请指教。感谢。

1 个答案:

答案 0 :(得分:1)

代码用原始帖子中的IIFE包装的原因是所有变量和声明都保持在本地并且不会泄漏到全局范围。因此,即使有必要,也无法从IIFE外部检索局部变量。

AngularJS服务存储在注射器内,在应用程序boostrap之前无法从外部检索。

从外部获取StudentService课程的唯一正确方法是导出它。如果这是模块范围,那么IIFE是不需要的并且不合需要:

export class StudentService {...}  
angular.module('test').service('StudentService', StudentService );