Ember classNameBindings não sendo chamados para o programa de amostra
-
28-10-2019 - |
Pergunta
Estou enfrentando problemas com associações de nomes de classe.Aqui está o código jsfiddle para o mesmo.Registrar o número de vezes que a ligação é chamada.Nunca é chamado quando a propriedade é alterada.
Solução
Parece que você tem alguns problemas aqui. Primeiramente, se você deseja que as propriedades sejam recalculadas quando o conteúdo de uma matriz mudar, você não pode depender apenas da propriedade da matriz em si - ela só disparará uma alteração quando for configurada para uma matriz diferente. Se você depender de myArray.@each
, sua propriedade será recalculada quando o conteúdo mudar também.
A seguir, o seu modelo contendo o span não está sendo renderizado porque você está fornecendo um modelo de visualização vazio na declaração de visualização do guidão. Altere o seu "HTML" para:
{{view App.contact}}
e sua extensão aparecerá.
Finalmente, executar Ember.run.sync()
não parece ser suficiente aqui. Não estou certo sobre o motivo por trás disso, mas ... as propriedades computadas são atualizadas apenas quando lidas (em comparação com observadores que atualizam imediatamente). Eu colocaria a hipótese de que, uma vez que sua propriedade computada é usada apenas pela visão e a visão só pode ser atualizada em uma execução subsequente por meio do loop de eventos JS, sua propriedade computada é recalculada apenas uma vez para todas as suas alterações em "subordinados". Altere seu código para usar tempos limite e funcionará bem.
Aqui está um jsfiddle com todas as minhas alterações propostas.