Sono AngularJS di apprendimento e quadro ionico utilizzando questo tutorial:
http://www.htmlxprs.com/post/12/tutorial-on-using-parse-rest-api-and-ionic-framework-together
Tutto funziona bene fino al punto quando creo un nuovo elemento in lo stato createTodo e quindi chiamare $ state.go ('Todos') per tornare al mio elenco di oggetti, ecco il codice per il controller Todo creare:
.controller('TodoCreateController', ['$scope', 'Todo', '$state', function($scope, Todo, $state) {
$scope.todo = {};
$scope.create = function() {
Todo.create({content: $scope.todo.content}).success(function(data) {
$state.go('todos', {}, {reload: true});
});
}
}])
ecco il codice per il controller lista articolo:
.controller('TodoListController', ['$scope', 'Todo', '$state', function($scope, Todo) {
Todo.getAll().success(function(data) {
$scope.items = data.results;
});
$scope.deleteItem = function(item) {
Todo.delete(item.objectId);
$scope.items.splice($scope.items.indexOf(item), 1);
};
}])
Qui sono stati configurati
All'avvio dell'applicazione, il metodo della TodoListController viene richiamato grazie all'ultima linea aggiunta e la fine del metodo .run nei principali app.js (o almeno questo è la mia comprensione):
.run(function($ionicPlatform, $state) {
$ionicPlatform.ready(function() {
if(window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar) {
StatusBar.styleDefault();
}
});
$state.go('todos');
})
mio problema è che, non appena il nuovo elemento viene creato e invoco $ state.go ('Todos') dalla TodoCreateController, mi riporta alla elenco articoli ma il nuovo oggetto non è presente e il metodo o f TodoListController non viene mai richiamato, pertanto l'elenco non è aggiornato.
Come posso aggiornare l'elenco nello stato 'todos' dopo che è stato creato un nuovo elemento?
Grazie Jacob, ma tutti i suggerimenti presuppongono che il codice all'interno di TodoListController verrà eseguito dopo l'aggiunta di un nuovo elemento. Ma il problema rimane. quando chiamo $ state.go() all'interno di TodoCreateController, lo stato cambia ma il codice all'interno di TodoListController è ** non eseguito ** e non so perché –
Inserendo il codice all'interno del rootScope.on statechangesuccess verrà richiamato il codice. Provalo e fammi sapere –
Lo faccio davvero ma il codice è chiamato come 3 volte. In ogni caso, il tuo suggerimento mi ha dato un'idea che ha funzionato bene. Grazie mille per il tuo feedback –