我使用Ionic框架,我有2个视图,一个用于我所有的商店,另一个用于商店详细信息。两者都在读取服务中的数据。 我的问题是,当我点击一家商店并返回时,所有商店都再次追加。角度服务复制数据
这里是一个plnkr我的代码
谢谢!
编辑:
在我看到一个解决方案是增加我的get函数内部数组的答案,这一点,如果我想读我的数组的对象停止我的重复数据,但什么。现在我有像这样的get函数中的数组:http://plnkr.co/edit/Ga8RVpwOvTnl4qkRVaWT?p=preview
我使用Ionic框架,我有2个视图,一个用于我所有的商店,另一个用于商店详细信息。两者都在读取服务中的数据。 我的问题是,当我点击一家商店并返回时,所有商店都再次追加。角度服务复制数据
这里是一个plnkr我的代码
谢谢!
编辑:
在我看到一个解决方案是增加我的get函数内部数组的答案,这一点,如果我想读我的数组的对象停止我的重复数据,但什么。现在我有像这样的get函数中的数组:http://plnkr.co/edit/Ga8RVpwOvTnl4qkRVaWT?p=preview
您的商店数组仅实例化一次,但每次调用getStores方法时都会推入它。
检查出这个plunkr:http://plnkr.co/edit/J6wnDEYDLPT5tsG1VYey?p=preview
服务/ - 在角度工厂都是单身,所以当你有下面的代码,你是初始化存储阵列一次,每个应用程序,但每次通话时间get
要添加到它。
var stores = [];
return {
get: function() {
stores.push(
要解决这个问题,你应该定义存储get函数里面的阵列,像这样:
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(...
太好了,这会停止我的重复数据。但是如果我想读取我的数组的一个对象。现在我在get函数中有数组。检查此:http://plnkr.co/edit/Ga8RVpwOvTnl4qkRVaWT?p=preview –
答案:http://plnkr.co/edit/NtDkkowMT9BJMW36kmky?p=preview – adrichman