Tôi AngularJS học và khung ion sử dụng hướng dẫn này:
http://www.htmlxprs.com/post/12/tutorial-on-using-parse-rest-api-and-ionic-framework-together
Tất cả mọi thứ hoạt động tốt cho đến thời điểm khi tôi tạo một mục mới trong tình trạng createTodo và sau đó gọi $ state.go ('todos') để quay trở lại vào danh sách các mặt hàng của tôi, đây là mã cho tạo Todo Bộ điều khiển:
.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});
});
}
}])
đây là mã cho bộ điều khiển mục danh sách:
.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);
};
}])
Dưới đây là các trạng thái cấu hình
Khi ứng dụng bắt đầu, phương pháp của TodoListController được gọi nhờ vào dòng cuối cùng bổ sung và kết thúc của phương pháp .run trong app.js chính (hoặc ít nhất thats hiểu biết của tôi):
.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');
})
vấn đề của tôi là, ngay sau khi mục mới được tạo ra và tôi gọi $ state.go ('todos') từ TodoCreateController, tôi phải mất trở lại mục danh sách nhưng mục mới không có và phương pháp o f TodoListController không bao giờ được gọi, do đó để lại danh sách lỗi thời.
Làm cách nào để làm mới danh sách trong trạng thái 'todos' sau khi một mục mới đã được tạo?
Cảm ơn bạn Jacob, nhưng tất cả các đề xuất giả định rằng mã bên trong TodoListController sẽ thực thi sau khi một mục mới đã được thêm vào. Nhưng vấn đề vẫn còn. khi tôi gọi $ state.go() bên trong TodoCreateController, trạng thái thay đổi nhưng mã bên trong TodoListController là ** không được thực hiện ** và tôi không biết tại sao –
Đưa mã bên trong rootScope.on statechangesuccess sẽ gọi mã. Hãy thử nó và cho tôi biết –
Tôi thực sự nhưng mã được gọi là 3 lần. Trong mọi trường hợp, đề xuất của bạn đã cho tôi một ý tưởng hoạt động tốt. Cảm ơn rất nhiều phản hồi của bạn –