Это проблема, которую я наткнулся, как хорошо. К сожалению, я не нашел простого решения для этого.
С помощью angular.directive() я вводил услугу url. С angular.component() вы больше не можете этого делать.
Вы можете использовать простой объект JS. Или, может быть, синглтон.
Я использую TypScript и в итоге использовал класс со статическими свойствами для этого.
Edit:
Просто хочу, чтобы продлить этот ответ с небольшим обновлением.
Поскольку мы больше не можем использовать механизм впрыска зависимостей AngularJS, порядок загрузки файлов важен, если вы хотите использовать дополнительный фрагмент кода для создания URL-адреса.
В следующем коде машинописного текста класс MyRoutes должен быть загружен перед любым угловым кодом для этого.
class NgMyComponent implements ng.IComponentOptions {
templateUrl = MyRoutes.templateBase + 'my-component.html';
controller = MyComponent;
controllerAs = 'vm';
}
class MyComponent {
}
angular
.module('MyModule')
.component('myComponent', new NgMyComponent);
Простой способ уменьшить этот бит должен использовать функцию для шаблона URL-адрес, так что URL-адрес построен только тогда, когда компонент фактически создается, например, так:
templateUrl =() => MyRoutes.templateBase + 'my-component.html';