2 つの .value レシピを含む構成モジュールを作成しています。
- baseURL
- baseURL の上にある多数の REST API URL
私は現在、これらを .value として設定していますが、同じように簡単に .constant にすることもできます
すべての API URL を書き直さなくても baseURL を変更できるようにしたいので、定義したばかりの baseURL を同じモジュールで参照する必要があります。
var configuration = angular.module('configuration', []);
configuration.value('Config',{
baseURL : 'http://dev.mysite.com/', // define Base URL
});
configuration.value('ApiList', {
getMyDataLink1 : this.baseURL + 'rest/folder1/action1/api_key/',
getMyDataLink2 : this.baseURL + 'rest/folder2/action2/api_key/',
getMyDataLink3 : this.baseURL + 'rest/folder3/action3/api_key/',
});
変数をテストすると:
Config.baseURL
次のように正しく出力されますhttp://dev.mysite.com/
ApiList.getMyDataLink1
部分が定義されていないため、半分しか定義されてthis.baseURL
いません(つまり、出力しますundefinedrest/folder1/action1/api_key/
)
また、ApiList .value を次のように定義しようとしました。
getMyDataLink1 : Config.baseURL + 'rest/folder1/action1/api_key/',
//or
getMyDataLink1 : baseURL + 'rest/folder1/action1/api_key/',
しかし、どちらも「Uncaught ReferenceError: XXXX is not defined」エラーが発生します...
同じモジュール内の別の .value から .value を参照することは可能ですか?
編集: http://jsfiddle.net/goredwards/yy5xuodh/を参照してください
EDIT2: http://jsfiddle.net/goredwards/xvj5xcgz/を参照してください。ここで、2 番目の .value を .factory に変換しました。次に、フィドルの下部にある js のみのメソッドと比較します。より簡潔な方法が必要です。これよりも!?