Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

186
Visualizações
¿AngularJS resume el matiz o solo soy tonto? ng si renderiza el componente dos veces?

Desafortunadamente, no puedo crear un fragmento reproducible para este escenario. Está ocurriendo en una base de código bastante complicada, basta con decir.

Tengo un método de componente onClick que establece un indicador en verdadero. p.ej

 // in the template <button type='button' ng-click="onClick()"></button> //javascript angular.module('myModule') .component('MyComponent', { ... controller: [function(){ var ctrl = this; ctrl.showModal = false; ctrl.onClick = function() { ctrl.showModal = true; } }] })

Este indicador se usa con un ng-if que crea una instancia de otro componente que $onInit representa un modal. p.ej

 //in the template <my-modal-component ng-if="$ctrl.showModal"></my-modal-component> //javascript angular.module('myModule') .component('myModalComponent', { ... controller: [function(){ // renders third party modal var renderModal = function() {} // makes and returns an api call to get some data as a promise var getRelevantData = function(){} this.$onInit = function () { getRelevantData().then(function(){ renderModal(); }) } }] })

Por alguna extraña razón, myModalComponent en realidad obtiene dos instancias separadas (es decir, se procesa dos veces, una encima de la otra) cuando se hace clic en el botón. Sé que hay algunos matices ng-if con el alcance, pero no estoy usando $scope aquí, e incluso poner la bandera dentro de un objeto no funcionó.

ng-show con algunos controles si funciona en la representación del tipo modal, pero mis enlaces de datos se arruinan (un método que paso a myModalComponent se define cuando ng-show es falso pero cuando ng-show cambia a verdadero, no está definido) entonces Prefiero no meterme en ese agujero de conejo si puedo; además, creo que ng-if tiene mucho más sentido aquí.

Aún más loco, si pongo un $timeout(, 10000) para retrasar la configuración de la bandera a 10 segundos al hacer clic en el botón ( onClick ), el modal todavía se muestra una vez inmediatamente y diez segundos después, otro modal se muestra encima de él .

Es cierto que trato de mantenerme alejado del ciclo de resumen, ya que sé que es algo importante que saber pero, irónicamente, es una especie de anti-patrón con el que meterse... Entonces, ¿alguien tiene alguna idea?

Extraño Reaccionar.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El problema estaba usando angular 1.5.9. He visto otros problemas de resumen, pero los he tratado de forma independiente, pero este fue más o menos un problema. Así que actualicé a 1.8 y el problema desapareció.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda