Угловая переменная 6 не разрешена в Google Chrome (веб-компонент)

Функциональные указатели

полезны во многих ситуациях, например:

  • Члены COM-объектов являются указателями на функцию ag: This->lpVtbl->AddRef(This); AddRef является указателем на функцию.
  • функция callback, например, функция, определяемая пользователем, для сравнения двух переменных, которые должны передаваться как обратный вызов специальной функции сортировки.
  • очень полезен для реализации плагина и SDK приложения.
3
задан nimrod 13 July 2018 в 09:15
поделиться

3 ответа

Вставить ChangeDetectorRef в конструкторе компонента вида:

constructor(private cd: ChangeDetectorRef) {
}

В функции подписки try:

this.conf = {};
this.conf.id = partner['id'];
this.conf.name = partner['name'];
this.cd.detectChanges();

Это может быть проблема с синхронизацией / change tick, это только показывается в Chrome. По крайней мере, это будет означать, что из уравнения

2
ответ дан Drenai 17 August 2018 в 13:19
поделиться
  • 1
    Большое спасибо Дэйву, я не знал об этом ChangeDetectorRef :) – nimrod 19 July 2018 в 08:58
  • 2
    Нет проблем :-) ngOnInit вызывается, когда данные сначала задаются, например. с нуля это начинается. Затем Angular устанавливает это значение в представлении. Затем выполняется проверка, чтобы убедиться, что эти значения не были обновлены после того, как представление было установлено. Вызов detectChanges позволяет угловым знать, что вы что-то изменили, и представление должно быть обновлено снова – Drenai 19 July 2018 в 10:26
  • 3
    Это было окончательное решение для меня: npmjs.com/package/elements-zone-strategy – nimrod 25 July 2018 в 05:34

Изменить: новое решение. try:

<pre *ngIf="conf && conf.id && conf.name">Conf: {{ conf | json }}</pre>
0
ответ дан Daniel Segura Pérez 17 August 2018 в 13:19
поделиться
  • 1
    Просто попробовал, все еще не доступен в представлении :( – nimrod 13 July 2018 в 09:14
  • 2
    если вы положили & lt; pre & gt; Conf: {{conf.id}} & lt; / pre & gt; это данные? – Daniel Segura Pérez 13 July 2018 в 09:16
  • 3
    Нет, к сожалению нет. – nimrod 13 July 2018 в 09:26
  • 4
    вы должны сделать runnable часть вашего кода на каком-то веб-сайте, таком как stackblitz. то мы можем вам помочь, без кода, я не могу сделать больше: S – Daniel Segura Pérez 13 July 2018 в 09:31
  • 5
    В этом случае практически невозможная часть кода практически невозможна. Там должен быть тот, который создает веб-компонент (и выпускает его), и тот, который использует этот выпущенный веб-компонент. Как это сделать? – nimrod 16 July 2018 в 12:55

Я думаю, что вы проблема для асинхронного потока ... когда вы consol.log ваш console.log('Conf ngOnInit:', this.conf); в nginit .. он еще не заполнен результатом this.partnerService.getData(this.name)

try this>

public conf: any;

ngOnInit() {
      this.getData().subscribe(()=>{
     console.log('Conf ngOnInit:', this.conf);
});


}

getData() {
  return Observable.From(this.partnerService.getData(this.name)
    .subscribe(
      (partner: any) => {
        console.log('partner: ', partner);

        this.conf = {};
         this.conf.id = partner['id'];
          this.conf.name: partner['name'];
        console.log('conf:', this.conf);
     ))
}
0
ответ дан federico scamuzzi 17 August 2018 в 13:19
поделиться
  • 1
    Я знаю, что console.log не заполняется из-за async, однако из-за привязки данных я ожидаю, что представление будет уведомлено, когда будет установлен параметр this.conf var. Верный? – nimrod 13 July 2018 в 12:12
  • 2
    Что вы имеете в виду с веб-компонентом? Из вашего примера не видно, что задействован веб-компонент. Вы используете стратегию обнаружения изменений OnPush? что объясняет проблему. – Thomas 18 July 2018 в 11:21
  • 3
    – federico scamuzzi 18 July 2018 в 12:20
Другие вопросы по тегам:

Похожие вопросы: