Как получить компонент, использующий привязки хоста xlink: href для работы в angular с включенным ivy - PullRequest
0 голосов
/ 20 марта 2020

Мне не удалось создать успешный планер для этого, поэтому я все равно пытаюсь спросить об этом, основываясь на описании. У нас есть компонент NG, который использует привязку хоста для привязки свойства значка к svg xlink: href.

@Component({
  selector: 'use', // tslint:disable-line
  template: ``
})
export class SohoIconUseComponent {
  // This works but we cant use it because it fails on Safari 12
  // @HostBinding('attr.href') get href(): string {
  //   return '#' + this.icon;
  // }

  // This does not work
  @HostBinding('attr.xlink:href') get xhrefLink(): string {
    return '#' + this.icon; 
  }

  @Input() icon: string;
}

Так что, как только мы обновились до NG 9 и включили Ivy, наши иконки перестали работать. Но если мы отключим ivy, он будет работать либо с href, либо с xlink: href.

Пробовал искать ошибки в репозитории Ng, но, похоже, просто не могу это выяснить? Есть какие-нибудь идеи?

Одна идея, которая у меня есть, заключается в том, что вы должны использовать setAttributeNS, чтобы иногда устанавливать xlink: href. Интересно, нужно ли мне связывать hostbinding другим способом, чтобы его установить, используя setAttributeNS?

...