Typescript angular2一致性导入

Typescript angular2一致性导入,typescript,angular,Typescript,Angular,我担心Angular2内的进口可能会发生冲突,我希望得到一些指导 在组件1中,我有以下内容: // Services //import {DataService} from './services/a2.DataService'; import {DataService} from '../../mocks/a2.mockDataService'; // Services import {DataService} from './services/a2.DataService'; //impo

我担心Angular2内的进口可能会发生冲突,我希望得到一些指导

在组件1中,我有以下内容:

// Services
//import {DataService} from './services/a2.DataService';
import {DataService} from '../../mocks/a2.mockDataService';
// Services
import {DataService} from './services/a2.DataService';
//import {DataService} from '../../mocks/a2.mockDataService';
在组件2中,我有以下内容:

// Services
//import {DataService} from './services/a2.DataService';
import {DataService} from '../../mocks/a2.mockDataService';
// Services
import {DataService} from './services/a2.DataService';
//import {DataService} from '../../mocks/a2.mockDataService';
我觉得这显然是错的。所以我想我做错了

我希望在app/main/bootstrap组件中指定一组一致的导入,并由所有组件继承;有点像stdafx.h,到处都有


请提供指导…

这样您所做的是正确的。Angular2没有像php中的Laravel那样的IoC容器,但Angular2的引导功能很接近!但是你可以用这种方式做一些很酷的事情

因此,如果我们在引导组件中添加一项服务,那么该服务与应用程序其余部分的服务相同。我的意思是:

exports class myGlobalClass{
   var myGlobalVariable = 'Cheese';
}
当我在任何其他模块中调用这个类时(只要我引导它),我就可以得到
myGlobalVariable
的值,这真的很酷的原因是对于像可观测的东西。有了可观测性,当我引导一个变量时,可以很容易地对整个应用程序产生状态更改影响

您仍然需要从“/globals”使用
import{myGlobalClass}导入该类,但它在整个应用程序中都是相同的类/对象

但是,如果我不希望整个应用程序中的所有内容都随状态更改而更改,该怎么办?我能做些什么让它更“地方化”

exports class myLocalClass{
   var myLocalVariable = 'Local Cheese';
}
我将从“/locals”
导入组件文件
import{myLocalClass}。这使得每个导入都有一个单独的类,这样您就可以在不同的视图上使用这个特定的类,而不必担心一个视图会改变另一个视图

但是,如果我想让myLocalClass影响两种不同的视图,那么这可能会更具挑战性。Angular2附带了额外的工具,可以让您在不太头疼的情况下完成此操作,但您可以更清楚地看到Angular2是如何将其分离出来的


还要补充toskv的评论,这就是导入在ES6中的工作方式。我不完全确定他们是否像对Node那样将其向下移植,每个模块只编译一次并分发,或者每个模块是否在每次调用时单独编译。我会假设后者,但不完全确定,希望其他人能插话。

所以你所做的是正确的。Angular2没有像php中的Laravel那样的IoC容器,但Angular2的引导功能很接近!但是你可以用这种方式做一些很酷的事情

因此,如果我们在引导组件中添加一项服务,那么该服务与应用程序其余部分的服务相同。我的意思是:

exports class myGlobalClass{
   var myGlobalVariable = 'Cheese';
}
当我在任何其他模块中调用这个类时(只要我引导它),我就可以得到
myGlobalVariable
的值,这真的很酷的原因是对于像可观测的东西。有了可观测性,当我引导一个变量时,可以很容易地对整个应用程序产生状态更改影响

您仍然需要从“/globals”
使用
import{myGlobalClass}导入该类,但它在整个应用程序中都是相同的类/对象

但是,如果我不希望整个应用程序中的所有内容都随状态更改而更改,该怎么办?我能做些什么让它更“地方化”

exports class myLocalClass{
   var myLocalVariable = 'Local Cheese';
}
我将从“/locals”
导入组件文件
import{myLocalClass}。这使得每个导入都有一个单独的类,这样您就可以在不同的视图上使用这个特定的类,而不必担心一个视图会改变另一个视图

但是,如果我想让myLocalClass影响两种不同的视图,那么这可能会更具挑战性。Angular2附带了额外的工具,可以让您在不太头疼的情况下完成此操作,但您可以更清楚地看到Angular2是如何将其分离出来的


还要补充toskv的评论,这就是导入在ES6中的工作方式。我不完全确定他们是否像对Node那样将其向下移植,每个模块只编译一次并分发,或者每个模块是否在每次调用时单独编译。我会假设后者,但不完全确定,希望其他人能插话。

不过ES6模块不是这样工作的。每个文件都是它自己的模块,需要指定它自己的导入。另外,您的代码有什么问题,请不要让我们猜测。:)但ES6模块不是这样工作的。每个文件都是它自己的模块,需要指定它自己的导入。另外,您的代码有什么问题,请不要让我们猜测。:)