Атрибуты шаблона не разрешены для обновленной директивы компонента Angular 1
У меня есть следующая директива Angular 1:
return function(module) {
module.directive('myButtonUpgrade', myButtonUpgrade);
function myButtonUpgrade() {
return {
restrict: 'E',
template: template(),
scope: {
image: '=',
imageColour: '='
}
};
function template() {
var html = '<my-button visible="flipVisible"\
enabled="enabled"\
image="{{::image}}"\
image-colour="{{::imageColour}}"\
</my-button>';
return html;
}
}
return myButtonUpgrade;
};
Директива использует директиву my-button внутри своего шаблона. Директива "my-button" требует наличия значений атрибутов "image" и "image-color" перед компиляцией своего шаблона.
У меня есть следующий компонент Angular 2, который обновляет Angular 1:
import { Component } from '@angular/core';
import { upgradeAdapter } from '../../../upgrade/index';
var myButtonEx = upgradeAdapter.upgradeNg1Component('myButtonUpgrade');
@Component({
selector: 'my-button-ex',
template: '<my-button-ex [image]="refresh"></my-button-ex>',
directives: [myButtonEx]
})
export class ButtonExComponent {
}
Как вы можете видеть, шаблон устанавливает привязки [image] к "refresh", однако это не разрешается при рендеринге "my-button-ex" директивы Angular 1.
Похоже, что адаптер обновления пытается сначала скомпилировать синтаксис HTML без разрешения аргументов шаблона:
upgrade_ng1_adapter.ts
compileTemplate(...){
this.linkFn = compileHtml(this.directive.template);
}
"this.directive.template" - аргументы шаблона не разрешены!
Есть идеи?