Questo è un problema ambito eredità spettanti a ng-switch
creazione di una propria scopo.
Una raccomandazione fatta spesso è sempre quella di utilizzare un dot
sui modelli. Il motivo è che quando l'oggetto dello scope del controller è un oggetto e non un primitivo, i sotto-ambiti creeranno un riferimento all'oggetto iniziale. Se il modello è un primitivo, non aggiornerà l'originale.
Ad esempio:
<input ng-model="test.value" placeholder="pre" type="text" />
$scope.test={value:''}
Un altro approccio è quello di utilizzare $parent
in html Model Markup:
<input ng-model="$parent.test" placeholder="pre" type="text" />
Utilizzando la metodologia dot
è una buona pratica per evitare questi problemi, come si don Non c'è bisogno di pensare agli ambiti nidificati più profondi.
Demo utilizzando test.value
come modello: http://plnkr.co/edit/CkiF55bLXsYzR6ZjcrJp?p=preview
di riferimento per quanto riguarda dot
nei modelli (lettura di valore): https://github.com/angular/angular.js/wiki/Understanding-Scopes
Qual è il motivo di questo comportamento? Ho appena trascorso tre ore cercando di capirlo perché ho cambiato il manuale che mostra/nasconde le mie due visualizzazioni degli stessi dati in un ng-switch 3 giorni e 3 revisioni del controllo del codice sorgente fa e tutto sembrava funzionare bene. Ho una selezione che imposta il carattere corrente per ciò che è selezionato in una lista e quel personaggio ha una lista di compiti. Tutto sembra trovare, ma quando clicco sui pulsanti delle mie attività viene utilizzato il personaggio genitore originale. Qualsiasi modo per accedere all'ambito secondario in un metodo click (sto usando executeTask ($ index))? –