Estou escrevendo um componente Angular que tem uma propriedade Mode(): string
.
Eu gostaria de poder definir esta propriedade programaticamente, não em resposta a nenhum evento.
O problema é que, na ausência de um evento do navegador, uma ligação de modelo {{Mode}}
não é atualizada.
Existe uma maneira de acionar essa detecção de alteração manualmente?
ChangeDetectorRef.detectChanges()
. validadores estavam disparando antes que minha diretiva pudesse atualizar o valor de uma entrada.Usei a referência de resposta aceita e gostaria de dar um exemplo, como a documentação do Angular 2 é muito difícil de ler, espero que seja mais fácil:
Importar
NgZone
:Adicione-o ao seu construtor de classes
Execute o código com
zone.run
:fonte
zone.run
código e o que exatamente édonations
?Consegui atualizá-lo com markForCheck ()
Importar ChangeDetectorRef
Injete e instancie
Por fim, marque a detecção de alterações a ser realizada
Aqui está um exemplo em que markForCheck () funciona e detectChanges () não.
https://plnkr.co/edit/RfJwHqEVJcMU9ku9XNE7?p=preview
(Pressione STOP / RUN para executá-lo novamente)
fonte
No Angular 2+, tente o decorador @Input
Ele permite alguma ligação de propriedade interessante entre os componentes pai e filho.
Primeiro, crie uma variável global no pai para armazenar o objeto / propriedade que será passado ao filho.
Em seguida, crie uma variável global no filho para manter o objeto / propriedade transmitida do pai.
Em seguida, no html pai, onde o modelo filho é usado, adicione a notação de colchetes com o nome da variável filho e defina-o igual ao nome da variável pai. Exemplo:
Por fim, onde a propriedade filho é definida no componente filho, adicione o decorador de Entrada:
Quando sua variável pai é atualizada, ela deve passar as atualizações para o componente filho, que atualizará seu html.
Além disso, para acionar uma função no componente filho, dê uma olhada em ngOnChanges.
fonte
ChangeDetectorRef.detectChanges () - semelhante ao $ scope. $ Digest () - ou seja, verifique apenas este componente e seus filhos
fonte