Угловое наблюдаемое поведение нечетное при совместном использовании

У меня была эта проблема и в прошлом, даже разные браузеры дали разные высоты линии! Я думаю, что это происходит при использовании генератора webfont и может быть исправлено только с использованием различной высоты строки, насколько мне известно.

Вы попробовали fontsquirrel? Есть несколько вариантов с разными результатами.

http://everythingfonts.com/font-face

http: //www.font2web .com /

http://www.fontsquirrel.com/tools/webfont-generator

https: // www.web-font-generator.com/

0
задан that_guy 13 July 2018 в 16:17
поделиться

1 ответ

Вы должны использовать общий () оператор, так как вы подписались дважды, вот почему вы получили дубликат. Вы должны изменить свой html-код соответственно:

 <tbody *ngIf="familyMembers | async as familyProps">
        <pre> {{familyProps | json}}</pre> 

В первом * ngЕсли вы проверяете наличие значений, поэтому нет необходимости использовать асинхронный канал снова в другой строке, так как он выиграл ' t, если он не прошел первый. Кроме того, когда вы вызываете «as familyProps» и используете его в следующей строке, вы уверены, что этот локальный объект будет доступен, когда эта строка будет выполнена. Он может работать без «как», но из вашего комментария я просто добавляю его, чтобы убедиться.

- EDIT. Каждый асинхронный канал, который вы вызываете, тоже будет подписаться, теперь случается, что первая строка с * ngIf ожидая значений, а вторая строка находится внутри этой оболочки, поэтому она не будет вызывать до тех пор, пока не будет выполнена первая строка. Теперь, когда первая строка проходит, вторая строка будет пытаться подписаться с асинхронным каналом, но уже завершена, из-за подписки на первую строку и на общий () оператор. Вы можете попробовать это, и оно должно работать также:

<tbody *ngIf="familyMembers | async">
  <pre> {{familyMembers | json}} </pre> 
1
ответ дан dAxx_ 17 August 2018 в 12:35
поделиться
  • 1
    @that_guy, проверьте редактирование, надеюсь, это поможет понять. – dAxx_ 13 July 2018 в 15:52
  • 2
    Я вижу, поэтому, как только все подписки на наблюдаемую семью отменили подписку, наблюдаемые завершаются и не будут вызывать никаких дополнительных значений? – that_guy 13 July 2018 в 16:01
  • 3
    Если будет больше значений, ваше решение зависит от вашего проекта и зависит от проекта, но проблема заключается в том, что ваш второй асинхронный канал вызывается после завершения наблюдаемого. – dAxx_ 13 July 2018 в 16:07
  • 4
    using shareReplay () исправил все мои проблемы - спасибо за помощь – that_guy 13 July 2018 в 16:18
Другие вопросы по тегам:

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