【发布时间】:2015-12-24 03:34:07
【问题描述】:
我在 AngularJS 中存储到本地存储时遇到问题。我正在使用 Ionic Framework 开发电子商务移动应用程序并使用 ng-repeat 显示产品数据。每个 ion-item 都有产品详细信息和一个与 TodoController 中的 addItem() 关联的按钮。单击按钮时,产品数据将存储到本地存储中。然而,问题是,每当我点击一系列按钮时,只有最后一个按钮被点击的产品会存储在本地存储中,而上一个点击按钮的数据不会。
<a class="item item-thumbnail-left" href="#">
<img ng-src={{product.featured_image.source}}>
<div class="row">
<div class="col">
<h3><span ng-bind="product.ID"></span></h3>
<h3><span ng-bind="product.title"></span></h3>
</div>
</div>
<div class="row">
<div class="col">
<p>{{product.meta_fields.woo.currency_symbol}}{{product.meta_fields.woo.price}}</p>
</div>
</div>
<div class="row">
<div class="col">
<p>Qty</p>
<select ng-init="quantity = '1'" ng-model="quantity">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
</select>
</div>
<div class="col"></div>
<div class="col" ng-controller="TodoController">
<button ng-click="addItem(product.ID, product.title,none , product.meta_fields.woo.price, quantity)">Add Me</button>
</div>
</div>
</a>
控制器
.controller('TodoController', function($scope) {
$scope.saved = localStorage.getItem('todos');
$scope.todos = (localStorage.getItem('todos')!==null) ? JSON.parse($scope.saved) : [];
localStorage.setItem('todos', JSON.stringify($scope.todos));
$scope.addItem = function (id,item,size,price,quantity) {
$scope.todos.push({id,item,size,price,quantity});
localStorage.setItem('todos', JSON.stringify($scope.todos));
}
})
【问题讨论】:
标签: angularjs ionic-framework local-storage