角度服务复制数据
Angular service duplicating data
我使用的是Ionic框架,我有两个视图,一个用于我的所有商店,另一个用于商店详细信息。两者都在从服务读取数据。我的问题是,当我点击一个商店并返回时,所有的商店都会再次追加。
这是一个带有我的代码的plnkr
谢谢!
编辑:
在我看到的答案中,一个解决方案是在get函数中添加数组,这样可以停止重复的数据,但如果我想读取数组的对象呢。现在,get函数中的数组如下所示:http://plnkr.co/edit/Ga8RVpwOvTnl4qkRVaWT?p=preview
您的stores数组只实例化过一次,但每次调用getStores方法时都会将其推入。
看看这个plunkr:http://plnkr.co/edit/J6wnDEYDLPT5tsG1VYey?p=preview
angular中的服务/工厂是单例的,所以当您有下面的代码时,您将为每个应用程序初始化存储阵列一次,但每次调用get
时,您都会将其添加到其中。
var stores = [];
return {
get: function () {
stores.push(
要解决这个问题,您应该在get函数中定义stores数组,如下所示:
return {
get: function(){
var stores = [];
stores.push(...
为了保留数组,请在get函数之外声明数组,但在将其他项推送到数组之前清除该数组。
var stores =[]; //declared outside get function so it will persist throughout the service
return {
get: function(){
stores = []; //reset upon get so data won't be duplicated
stores.push(...
相关文章:
- 使用数据属性将HTML数据复制到另一个元素
- 在同一html页面中使用不同数据复制图表/图形
- 用于在表中添加行的Javascript代码将单元格中的数据复制到新行中
- 将表行数据复制到 html 中的表单
- 将数据复制到 JavaScript D3 中的数组.js然后绘制散点图
- 如何将画布图像数据复制到论文.js 光栅对象
- 如何将一行中的所有数据复制到所有其他行
- 无法将 HTML 标签的数据复制到 JavaScript
- 将数据复制到JQGrid
- 数据列表中缺少数据复制
- 基于java的web应用程序从数据库到前端的实时数据复制
- 如何在拖放中扩展数据复制
- 如何将数组数据复制到具有数组和字段的对象
- 如何将Excel数据复制到HTML表中?
- 将网站的特定数据复制到excel中
- 正在将中的JSON数据复制到数组
- 通过单选按钮选择一行时,将一行数据复制到同一页面的文本字段中
- 在 Firefox 中使用 javascript 从剪贴板数据复制
- jQuery:如何使用on('copy', ..)将数据复制到剪贴板
- 通过单击复选框将一个文本框中的数据复制到另一个文本框中