Esperado: assim que eu pressionar o botão, as tags do tópico serão definidas como my-tag (funciona), o que aciona uma nova renderização do botão e o desabilita.
Esperado: assim que eu adicionar a tag manualmente, o botão será desabilitado
Realidade: a nova renderização não é acionada em nenhum dos cenários.
O botão é corretamente desabilitado/habilitado na atualização da página.
Ter uma propriedade computada dependendo de topic.tags fará com que ela seja invalidada quando o próprio array for substituído. Mas não causará invalidação quando itens forem adicionados/removidos do array.
Portanto, acho que você provavelmente quer topic.tags.@each (docs).
Em geral, estamos tentando nos afastar de propriedades computadas e nos aproximar de getters nativos/autotracking. Acho que teremos que modernizar a API topic-footer-buttons em algum momento para suportar isso
No entanto, usar topic.tags.@each não resolve isso… (de qualquer forma, nem quando a tag é adicionada manualmente, nem quando o botão é pressionado).
Um console.log na função disabled() não é executado. Ele também não é executado em displayed().
Eu também tentei this.topic.notifyPropertyChange("tags");
E até fiquei desesperado e tentei manipular outras propriedades (como this.topic.title = this.topic.title + "!" e incluindo topic.title em dependentKeys). Isso também não funciona. Usar this.topic.set... também não funciona.