Я разрабатываю приложение с использованием Ionic Framework, и есть проблема, которую я не могу решить. У меня есть несколько представлений, которые являются шагами и должны обмениваться данными, пользователь также может отступить, перейти к другим представлениям и вернуться позже. Его ввод должен храниться до тех пор, пока последний шаг не будет закончен, тогда я смогу сохранить модель, и мне нужен новый пустой.обмениваться данными между представлениями
Я использовал завод для этого, но я не могу найти способ очистить возвращаемый объект. Является ли это возможным? Какие еще подходы я могу использовать здесь?
app.js
.state('topup', {
url: "/topup",
abstract: true,
templateUrl: "templates/topup/topup.html",
controller:'TopupCtrl'
})
.state('topup-1', {
url: "/topup-1",
templateUrl: "templates/topup/topup-1.html",
controller:'TopupCtrl'
})
.state('topup-2', {
url: "/topup-2",
templateUrl: "templates/topup/topup-2.html",
controller:'TopupCtrl'
})
controllers.js
.controller('TopupCtrl', function($scope, $state, TopupData, HistoryData) {
$scope.data = TopupData.getCurrent();
$scope.selectOperator = function(operator) {
$scope.data.Operator = operator;
$state.go("topup-2");
};
$scope.acceptTopup = function(){
HistoryData.getHistory().push($scope.data);
console.log(HistoryData.getHistory());
TopupData.setCurrent({});
$state.go("main");
};
})
services.js
.factory('TopupData', function() {
var service = {};
var Model = {};
service.setCurrent = function(value)
{
Model = value;
};
service.getCurrent = function(value)
{
return Model;
};
return service;
})
Почему вы используете один и тот же контроллер во всех штатах –
Кажется достаточным, есть еще несколько шагов, которые используют простые функции, подобные описанным выше, которые используют только TopupData, поэтому есть ли причины разделить его на нескольких контроллерах? – Adiqq
вы почему-то не просто обертываете его на родительский div 'ui-view' и удаляете контроллер из состояния Уровень –