(Angular 2 RC4)
С @HostBinding мы должны иметь возможность изменять свойства хоста, не так ли? Мой вопрос: применимо ли это к свойствам @Input(), и если да, то каково правильное использование? Если нет, есть ли другой способ достичь этого?
Я сделал Plunker здесь, чтобы проиллюстрировать мою проблему: https://embed.plnkr.co/kQEKbT/
Предположим, что у меня есть пользовательский компонент:
@Component({
selector: 'custom-img',
template: `
<img src="{{src}}">
`
})
export class CustomImgComponent {
@Input() src: string;
}
И я хочу передать свойство src директивой атрибута:
@Directive({
selector: '[srcKey]'
})
export class SrcKeyDirective implements OnChanges {
@Input() srcKey: string;
@HostBinding() src;
ngOnChanges() {
this.src = `https://www.google.com.mt/images/branding/googlelogo/2x/${this.srcKey}_color_272x92dp.png`;
}
}
Почему эта директива не может изменить входное свойство [src] для пользовательского компонента?
@Component({
selector: 'my-app',
directives: [CustomImgComponent, SrcKeyDirective],
template: `<custom-img [srcKey]="imageKey"></custom-img>`
})
export class AppComponent {
imageKey = "googlelogo";
}
Спасибо!