请注意如何在不需要相对路径的情况下导入 Angular 包?例如:import {Component} from '@angular/core';
。您可以对您的服务做同样的事情!
如果您使用类似于 Angular 站点 ( https://angular.io/guide/quickstart ) 上的快速入门的设置,则第 4 步让您将以下内容放入您的index.html
:
您可以使用此脚本来配置 SystemJS 并使用非相对路径告诉它在哪里可以找到您的服务。转到https://angular.io/guide/quickstart并选择 SystemJS 选项卡以查看快速启动文件的配置方式。您可以添加到map
数组的自定义映射。例如,添加'myservices': 'app/services'
会使数组看起来像:
var map = {
'app': 'app',
'@angular': 'node_modules/@angular',
'rxjs': 'node_modules/rxjs',
'myservices': 'app/services'
};
请注意,其中的路径map
不是 typescript 文件的路径,而是 typescript 编译器将放置 JS 文件的路径。此设置应允许您随后导入CustomService
存在于custom.service.ts
文件中的类Import {CustomService} from 'myservices/custom.service'
如果导入失败,请返回 SystemJS 配置并确保在packages
数组中,您已app
注册并将 defaultExtension 设置为js
. 以下摘录摘自快速入门指南:
var packages = {
'app': { main: 'main.js', defaultExtension: 'js' },
'rxjs': { defaultExtension: 'js' },
};