Angular服务重复数据

时间:2014-04-15 19:59:04

标签: javascript angularjs ionic-framework

我正在使用Ionic框架,我有2个视图,一个用于我的所有商店,另一个用于商店详细信息。两者都在从服务中读取数据。 我的问题是,当我点击一个商店并返回时,所有商店都会再次追加。

以下是我的代码

plnkr

谢谢!


编辑:

在答案中,我看到一个解决方案是在我的get函数中添加数组,这会停止我的重复数据,但如果我想读取数组的对象该怎么办。现在我在get函数中有这样的数组:http://plnkr.co/edit/Ga8RVpwOvTnl4qkRVaWT?p=preview

2 个答案:

答案 0 :(得分:1)

你的商店数组只被实例化一次,但每次你调用getStores方法时都会进入它。

看看这个plunkr:http://plnkr.co/edit/J6wnDEYDLPT5tsG1VYey?p=preview

答案 1 :(得分:1)

有角度的服务/工厂是单身人士,所以当您拥有以下代码时,您每个应用程序都会初始化一次商店数组,但每次调用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(...