Sto costruendo un angolare-app con ui-router, dove ho una vista padre e una vista del bambino.passaggio di informazioni da stato a stato bambino genitore in angolare-ui-router
routerApp.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/home');
$stateProvider
.state('home', {
url: '/home',
templateUrl: '/views/home/home.html',
controller: 'HomeController'
})
.state('new-assignment', {
url: '/new-assignment',
templateUrl: 'new-assignment.html',
controller: 'AssignmentController'
})
.state('new-assignment.new-client', {
url: '/new-client',
templateUrl: 'new-client.html',
controller: 'ClientController'
})
;
});
La vista del bambino viene utilizzato (tra le altre cose) per creare un nuovo cliente. Quindi, facendo clic su 'crea nuovo cliente' nella vista principale. Lo stato cambia in "new-assignment.new-client" e viene mostrata la vista laterale.
Quando il client viene creata voglio passare di nuovo alla vista primaria 'nuova assegnazione' e passare lungo le informazioni con quanto che si sono appena creato.
La vista padre potrebbe avere ancora i dati in una sua forma (per la creazione di assegnazione) e deve, naturalmente, non essere toccato.
posso rilevare un cambiamento da '$ stateChangeSuccess' evento:
routerApp.controller('AssignmentController', function($scope, Assignment, Client, $log) {
$scope.clients = Client.clients;
$scope.$on('$stateChangeSuccess', function (e, toState, toParams, fromState, fromParams){
$log.log(fromState.name + ' -> ' + toState.name);
$log.log('toParams ');
$log.log(toParams);
$log.log('fromParams ');
$log.log(fromParams);
});
});
ho cercato di passare informazioni attraverso
$state.go('^', data);
ma senza successo ...
Ma don Comprendere come passare i dati alla vista principale. Qualche idea?
Vedo il tuo punto, ma non mi piace cambiare le cose nella portata degli altri. Potrebbe diventare molto complicato, soprattutto dal momento che questo aggiornerà specifici elementi di input, ecc. Ho deciso di utilizzare gli eventi per informare sugli aggiornamenti. Vedi la mia risposta. Grazie per il tuo input @ david004 – mraxus
Pensi seriamente che sia meno disordinato? Il framework ha ereditarietà per una ragione. – david004
L'ambito vista stato figlio non eredita dall'ambito della vista stato genitore a meno che la vista stato figlio non sia nidificata nella vista stato genitore. Un esempio in cui le viste non sono nidificate sono le modali. –