1

angular2 with webpack2 プロジェクトを angular-cli ベースのプロジェクトに変換しようとしています。

私の理解が正しければ、angular-cli は webpack をサポートするようになりました。私の元のプロジェクトでは、次を注入しましたapp.config.js

module.exports =  {
    webServer: {
        appBaseHref : JSON.stringify("/")
    },
    auth0: {
        apiKey: JSON.stringify("API_KEY"),
        domain: JSON.stringify("DOMAIN.auth0.com"),
        callbackUrl: JSON.stringify("CALLBACK_URL")
    }
};

以下をwebpack.config.js ファイルに追加します。

const appConfig = require("./config/app.config");
const DefinePlugin = require("webpack/lib/DefinePlugin");
...
module.exports = {
    plugins: [
       new DefinePlugin({
           APP_CONFIG: appConfig
       }),
...

次に、typescript プロジェクトで APP_CONFIG を宣言しdeclare var APP_CONFIG:any;、そのプロパティを使用します。angular-cli プロジェクトにそのようなオブジェクトを挿入するにはどうすればよいですか?

ありがとう

4

1 に答える 1

2

set通常のサービスをandgetメソッドで使用する簡単な例を次に示します。

import {Injectable} from '@angular/core';

@Injectable()

export class AppConfigService {

  public config: any = {
    apiKey: '[api_key]',
    domain: '[domain]',
    callbackUrl: '[callbackUrl]'
  }

  constructor() {}

  /* Allows you to update any of the values dynamically */
  set(k: string, v: any): void {
    this.config[k] = v;
  }

  /* Returns the entire config object or just one value if key is provided */
  get(k: string): any {
    return k ? this.config[k] : this.config;
  }
}

より複雑なユースケースでは、代わりにオブザーバブルに変換したいかもしれませんが、この単純なケースではそれが必要だとは思いません。

于 2016-10-14T06:24:21.490 に答える