我的目標是使用定義組件的templateUrl屬性的常量值(基本URL)的依賴注入。迄今沒有任何工作。下面的代碼在Typescript中Angular 1.5組件 - 依賴注入
一些解釋:app.core.Iconstants包含baseUrl值。 app.core.AngularGlobals.appCoreConstants是表示「app.core.Constants」的字符串。
請注意,我只是削減了Angular的牙齒。
命名空間donationEntry.Components {0,使用嚴格的;
class test1 implements ng.IComponentOptions {
public static id: string = AngularGlobals.donationEntry + ".test1";
bindings: any;
controller: any;
templateUrl: string;
constructor(clientContext: app.core.IConstants) {
this.bindings = {
textBinding: '@',
dataBinding: '<',
functionBinding: '&'
};
this.controller = TestController;
this.templateUrl = clientContext.baseUrl + "Areas/ng/app/fundraising/donationEntry/components/test1/test1.html";
}
}
// register the controller with app
angular.module(AngularGlobals.donationEntry)
.component("test1", [app.core.AngularGlobals.appCoreConstants, (c) => new test1(c)]);
}
當運行此,我結束了以下錯誤:
angular.js:61未被捕獲的錯誤:[$注射器:modulerr]未能實例模塊的應用程序由於: 錯誤:[$注射器:modulerr]未能實例化模塊donationEntry由於: 類型錯誤:t.charAt不是一個函數
說你是一個對象不具有的charAt上調用的charAt,但我沒有看到任何地方的charAt在你提供的片段中,你確定這是問題所在嗎? –
繞過這個問題,我從來沒有深入過,但它似乎與我使用的快捷方式注入語法有關。 –