Как понизить пользовательский канал, написанный на angular2, для использования в angular 1.5?
Я написал компонент, который использует трубу в Angular 2. Теперь я пытаюсь понизить компонент, который будет использоваться в моем Angular 1.5:
angular.module('myApp')
.directive('Item', downgradeComponent({component: ItemComponent, inputs: ['item'], outputs: ['onTagRemoved'] }) as angular.IDirectiveFactory);
Шаблон моего ItemComponent
использует новую трубу. Во время понижения я получаю сообщение об ошибке по этому каналу.
systemjs.import error: Error: (SystemJS) Can't resolve all parameters for tagPipe: (?).
Нужно ли понизить трубу до? Как? Ничего не нашел при поиске труб понижения.
2 ответа
Решение
Вы не можете понизить трубы - переписать это. Смотрите презентацию от NG-CONF 2017:
https://www.slideshare.net/jawache/migrating-from-angularjs-when-you-cant-use-the-word-big-bang
Вы можете понизить версию канала следующим образом, если хотите использовать его программно:
angular.module('myApp')
.factory('myCustomPipe', downgradeInjectable(MyCustomPipe))
Ваш канал должен быть объявлен в провайдерах вашего углового модуля:
@NgModule({
declarations: [
MyCustomPipe
],
exports: [
MyCustomPipe
],
providers: [
MyCustomPipe
]
})
export class AppModule {
}