私はhome.html内のリストに追加しようとしています。myOrders.htmlにionicとangularjsを使ってリストを表示しようとしています。Angularjsのサービス中の配列へのpush toは前の項目を置き換えます
問題は、新しい項目を配列にプッシュすると、以前の項目が新しい項目に置き換えられるということです。
例:
プッシュ '1' - >配列である[{ 'name' の一 '}]
プッシュ '2' - >配列は[{である' 名前」: {'name': 'one'}、{'name': 'two'}]
プッシュ 'three' - 'two'}、{'name': 'two'}] >配列は[{'name': 'three'}、{'name': 'three'}、 {'name': 'three'}] //は である必要があります[{'name': 'one'} 、{'name': 'two'}、{'name': 'three'}]
下記のコードの関連部分を追加しました。
home.html
(リストに追加)
<ion-view title="Home">
<ion-content ng-controller="homeCtrl">
<form ng-submit="submitForm(product)" class="list">
<input ng-model="product.name" type="text">
<input type="submit" value="Search" class="button">
</form>
</ion-content>
</ion-view>
myOrders.html
(表示リスト)
<ion-view title="My Orders">
<ion-content ng-controller="myOrdersCtrl">
{{ product }}
</ion-content>
</ion-view>
controllers.js
angular.module('app.controllers', [])
...
.controller('homeCtrl', function($scope, $state, formData) {
$scope.product = {};
$scope.submitForm = function(product) {
if (product.name) {
formData.updateForm(product);
$state.go('menu.myOrders');
} else {
alert("Please fill out some information for the user");
}
};
})
.controller('myOrdersCtrl', function($scope, formData) {
$scope.product = formData.getForm();
})
services.js
angular.module('app.services', [])
.service('formData', [function(){
return {
form: [],
getForm: function() {
return this.form;
},
updateForm: function(item) {
this.form.push(item);
}
}
}]);
に通過する間、あなたのオブジェクトのコピーを作成するような何かを試してみてはfactory' 'のものです。 'service'から何も明示的に返すべきではありません。すべての変数とメソッドは、 'this' kyewordに置かなければなりません – Kulbhushan
あなたのコードサンプル用にplnkerを入れてください – Kulbhushan