Ich arbeite an einer Anwendung, die von Vorlage A zu Vorlage B zurück zu Vorlage A geht. Auf Vorlage A der Benutzer auf eine Schaltfläche klicken, um zu Vorlage B zu gelangen Benutzer fügt einen Betrag hinzu und trifft dann auf Senden. Das Programm kehrt dann zu Vorlage A zurück und zeigt an, was in Vorlage B eingegeben wurde, aber die übergebene Nummer wird im Bereich nicht aktualisiert und erscheint als Null. Aus irgendeinem Grund wird der Bereich aktualisiert, wenn ich die Anwendung von Vorlage B zu Vorlage A starte.
ich eine Fabrik bin mit
.factory('myService', function(){
var budget = {
limit: null
};
function set(data){
budget.limit = data;
}
function get(){
return budget.limit;
}
return{
set: set,
get: get,
print: console.log(budget.limit)
}
})
Hier ist mein Code für Template A BudgetCalc
genannt<ion-view view-title="BudgetCalc">
<ion-content class="padding">
<a href="#/tab/dash/addBudget"><button>Start Budgeting</button></a>
<h2>Your Limit is {{limit}}</h2>
</ion-content>
</ion-view>
Und Vorlage B genannt addBuget
<ion-view view-title="Add a Budget">
<ion-content>
<label class="item item-input">
<span class="input-label">Set Spending Limit</span>
<input type="number"ng-model="limit">
</label>
<button ui-sref="tab.budget" ng-click="setLimit(limit)">Submit</button>
<br><h2>Your Limit is: {{limit}}</h2>
</ion-content>
</ion-view>
Hier ist meine Controller sind für die zwei Vorlagen
mit localstorage.controller('SetLimitCtrl', function($scope, $localstorage){
$scope.setLimit = function(limit){
if (limit != null) {
$localstorage.set("limit",limit);
console.log($localstorage.get("limit"));
}
}
})
.controller('BudgetCtrl', function($scope, $localstorage) {
$scope.limit = $localstorage.get("limit");
console.log("This is your limit " + $scope.limit);
//// Dont forgot to clear limit when you complete the further process
})
Fabrik Localsoarage
.controller('BudgetCtrl', function($scope, myService) {
$scope.limit = myService.get();
console.log("This is your limit " + $scope.limit);
})
.controller('SetLimitCtrl', function($scope, myService){
$scope.setLimit = function(limit){
if (limit != null) {
myService.set(limit);
console.log(myService.print);
}
}
})
Jedes Mal, wenn Sie zurück gehen A zu betrachten, ist die console.log in BudgetCtrl läuft? – yBrodsky
Nein, es läuft nur das erste Mal. Beim Zurückgehen wird es nicht erneut angezeigt. –
Wenn Sie zurück zur Ansicht A navigieren, fügen Sie die Option zum erneuten Laden hinzu. $ state.go ('viewA'), {}, {reload: true}) – yBrodsky