2013-04-01 12 views
5

Ho problemi con gli ambiti angolari nel contesto di una scheda (interfaccia utente angolare).Come ottenere l'ambito all'interno delle schede dell'interfaccia utente angolare

Ecco il mio jsfiddle example (esempio ridotto che mostra i campi su più schede con un singolo pulsante di invio al di fuori delle schede).

Ecco il layout di base HTML:

<form...> 
    <tab> 
    <pane> 
     <input...> 
    </pane> 
    </tab> 
</form> 

Guardando il jsfiddle example, senza le schede se presento una forma molto semplice avrei visto il $ scope.user essere un oggetto. Poiché i campi si trovano all'interno di riquadri (schede), l'ambito è errato. Come posso ottenere l'accesso all'oggetto utente inviato in createUser?

+0

http://stackoverflow.com/questions/22772041/angualrjs-and-angular-ui-bootstrap-tabs-scope –

risposta

7

Il problema è che il modello user è nascosto in profondità in un ambito isolato. Per ottenere il funzionamento del codice come previsto, è necessario alert il valore di $scope.$$childHead.panes[0].$$nextSibling.user.first_name non $scope.user. Questa ovviamente non è una soluzione.

Una soluzione semplice consiste nell'aggiungere un oggetto vuoto user all'ambito del controller. Le direttive ng-model nel codice HTML verranno quindi associate a questa proprietà. Il controller dovrebbe essere simile a questo:

function MyCtrl($scope) { 
    $scope.user = {}; 
    $scope.createUser = function() { 
    alert($scope.user); 
    }; 
} 
+0

Grazie! Ha perfettamente senso. –

+0

+1. Si noti che nel violino dell'OP, l'oggetto 'user' viene creato negli ambiti transclusi delle direttive (non gli ambiti di isolamento delle direttive). –

Problemi correlati