我正在使用 Ionic 框架,我有 2 个视图,一个用于我的所有商店,另一个用于商店详细信息。两者都从服务中读取数据。我的问题是,当我单击一个商店并返回时,所有商店都会再次附加。
这是我的代码的plnkr
谢谢!
编辑:
在答案中,我看到一种解决方案是在我的 get 函数中添加数组,这会停止我的重复数据,但是如果我想读取数组的对象怎么办。现在我在 get 函数中有这样的数组:http ://plnkr.co/edit/Ga8RVpwOvTnl4qkRVaWT?p=preview
我正在使用 Ionic 框架,我有 2 个视图,一个用于我的所有商店,另一个用于商店详细信息。两者都从服务中读取数据。我的问题是,当我单击一个商店并返回时,所有商店都会再次附加。
这是我的代码的plnkr
谢谢!
编辑:
在答案中,我看到一种解决方案是在我的 get 函数中添加数组,这会停止我的重复数据,但是如果我想读取数组的对象怎么办。现在我在 get 函数中有这样的数组:http ://plnkr.co/edit/Ga8RVpwOvTnl4qkRVaWT?p=preview
您的 stores 数组仅被实例化一次,但您每次调用 getStores 方法时都会将其推入其中。
看看这个 plunkr:http ://plnkr.co/edit/J6wnDEYDLPT5tsG1VYey?p=preview
Angular 中的服务/工厂是单例的,因此当您拥有下面的代码时,您正在为每个应用程序初始化一次 stores 数组,但每次调用时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(...