Моя цель состояла в том, чтобы использовать зависимую инъекцию константного значения (базового URL) для использования в определении свойства templateUrl компонента. Ничего до сих пор не сработало. Код ниже приведен в машинописном текстеУгловой 1.5 Компонент - инъекция зависимостей
Некоторое объяснение: app.core.Iconstants содержит значение baseUrl. app.core.AngularGlobals.appCoreConstants - это строка, представляющая «app.core.Constants».
Помните, я просто режу зубы Углового.
namespace donationEntry.Components { "use strict";
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 из-за: TypeError: t.charAt не является функцией
Говорит вы вызываете Шар на объекте, который не имеет Шара, но я не вижу Шар в любом месте в предоставленном фрагменте вы уверены, что это проблема? –
Облегчив проблему, я никогда не углублялся, однако, похоже, это связано с синтаксисом сокращения ярлыков, который я использовал. –