2

angular-module-1 モジュールで I フォルダー パス (定数: BASE_PATH : "path/to/folder") を定義して、モジュラー角度アプリケーションを開発しています。アプリケーションの別のモジュール (angular-module-2) にある角度コンポーネントでこの定数を再利用したいと考えています。プロジェクトでこの定数を何度も使用したいと考えています。

module.component("relationshipSearch", {
templateUrl: BASE_PATH +'/link/to/other/folder',

魔女は、この定数をすべてのソリューション プロジェクトで表示されるグローバル変数として定義する最良の方法です。これが私のプロジェクト構造です。

project
|-- angular-module-1
|   |-- angular-module-1.js
|   |-- angular-module-1.html
|-- angular-module-2
|   |-- angular-module-2.js
|   |-- angular-module-2.html
4

3 に答える 3

6

common 、、、などのものangular-commonを配置できるas という名前の共通モジュールを作成すると思います。commonservicefactorydirectiveconstants

次に、モジュール内に定数を追加しますangular-common(これは完全に独立しており、プラグイン可能です)。以下のように

//assuming `angular-common` is already defined
angular.module('angular-common').constant('commmonSetting', {
  'BASE_PATH': '/link/to/other/folder'
})

次に、この共通モジュールをapp(メインモジュールであり、ng-app/で使用されbootstrapます) に以下のようにインジェクトします。

angular.module('app', ['angular-common', 'ngRoute', ...other dependencies..])

必要な場所に/に依存関係をBASE_PATH注入するだけで使用したい場合。commmonSettingcontrollercomponent

app.component('myComponent', {
  templateUrl: function(commmonSetting){
    return commmonSetting.BASE_PATH +'/link/to/other/folder';
  },
  ....
})
于 2016-08-03T17:18:42.583 に答える
3

受け入れられた回答で古いスレッドに投稿して申し訳ありませんが、受け入れられた回答は縮小化に安全ではないと言いたいです。これを書くための安全な縮小方法は次のとおりです。

app.component('myComponent', {
  templateUrl: function($injector){
    var commmonSetting = $injector.get('namespace.CommmonSetting');
    return commmonSetting.BASE_PATH +'/link/to/other/folder';
  },
  ....
});
于 2017-03-30T19:31:37.483 に答える
0

おそらく、別のアプローチが役立つかもしれません。パスを設定する代わりに、同じディレクトリ内のファイルを参照してください。

require()たとえば、次のように使用できます。

template: require('./template-in-same-dir.html')

templateではないことに注意してくださいtemplateUrl

于 2016-08-03T17:17:15.147 に答える