Angular2 - Expressão alterada após a verificação - Vinculação à largura da div com eventos de redimensionamento

Fiz algumas leituras e investigações sobre esse erro, mas não tenho certeza qual é a resposta correta para minha situação. Entendo que, no modo dev, a detecção de alterações é executada duas vezes, mas reluto em usarenableProdMode() para mascarar o problema.

Aqui está um exemplo simples em que o número de células na tabela deve aumentar à medida que a largura da div se expande. (Observe que a largura da div não é uma função apenas da largura da tela, portanto, o @Media não pode ser facilmente aplicado)

Meu HTML tem a seguinte aparência (widget.template.html):

<div #widgetParentDiv class="Content">
<p>Sample widget</p>
<table><tr>
   <td>Value1</td>
   <td *ngIf="widgetParentDiv.clientWidth>350">Value2</td>
   <td *ngIf="widgetParentDiv.clientWidth>700">Value3</td>
</tr></table>

Isso por si só não faz nada. Suponho que isso ocorre porque nada está causando a detecção de alterações. No entanto, quando altero a primeira linha para a seguinte e crio uma função vazia para receber a chamada, ela começa a funcionar, mas ocasionalmente recebo a 'Expressão alterada após a verificação do erro'

<div #widgetParentDiv class="Content">
   gets replaced with
      <div #widgetParentDiv (window:resize)=parentResize(10) class="Content">

Meu melhor palpite é que, com essa modificação, a detecção de alterações é acionada e tudo começa a responder, no entanto, quando a largura muda rapidamente, a exceção é lançada porque a iteração anterior da detecção de alterações demorou mais para ser concluída do que alterar a largura da div.

Existe uma abordagem melhor para acionar a detecção de alterações?Devo capturar o evento de redimensionamento por meio de uma função para garantir a detecção de alterações?O uso de #widthParentDiv para acessar a largura da div é aceitável?Existe uma solução geral melhor?

Para mais detalhes sobre o meu projeto, consulteesta pergunta semelhante.

obrigado

questionAnswers(3)

yourAnswerToTheQuestion