如何在AngularClass / angular-starter中注入Global实现?

时间:2017-10-03 19:12:21

标签: angular webpack

此问题与AngularClass/angular-starter

有关

我希望通过设置env变量来定义API URL(所以我可以在构建平台上配置它)。

我看了here,发现可以使用 DefinePlugin 完成。

我在API和其他一些地方添加了webpack.prod|dev.js个全局变量

// Webpack.js
const API = process.env.API || "http://localhost/api";

new DefinePlugin({
   ...
   'API': METADATA.API,
   'process.env': {
     ...
   }
 }),



// custom-typings.d.ts
interface GlobalEnvironment {
  ..
  API: string;
  ..
}

Global接口在GlobalEnvironment之后继承。我在项目中搜索了它的任何实现,但没有运气。

无论如何我试着注射它,计算一些魔法可能会发生,但事实并非如此。

@Injectable()
export class ConvertingService {
  constructor(
      private http: Http,
      private global: Global
  ) { }

我得到了一个未解决的例外。

Uncaught Error: Can't resolve all parameters for ConvertingService: ([object Object], ?).

注入Global实施的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

据我所知,你不需要注射任何东西。只需尝试在代码中使用 API变量。想象一下API是全局变量(它不是)。请求变量时,Webpack会覆盖引用...请参阅https://github.com/AngularClass/angular-starter/issues/386

相关问题