首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在具有唯一id的子代中创建元素的firebaseArray?

如何在具有唯一id的子代中创建元素的firebaseArray?
EN

Stack Overflow用户
提问于 2017-02-15 00:40:47
回答 3查看 103关注 0票数 1

我有一个代码结构,其中我准备了完美工作的商店。但是,我需要列出每个商店中的促销活动,每个促销活动都有一个唯一的id,所以我想知道如何列出每个商店中的所有促销活动,请遵循以下代码:

在app.js中

代码语言:javascript
复制
app.factory('Promos', function($firebaseArray){

    var ref = new Firebase('https://myapp.firebaseio.com/');
    var refPromoArray = $firebaseArray(ref);

    return{
    getPromos: function() {
        if (refPromoArray) {
            return $firebaseArray(ref.child('promotions'));
        }
    }
})

在controller.js中

代码语言:javascript
复制
.controller('PromoListCtrl', function($scope, $state, $stateParams, $ionicLoading, Promos) {
    $scope.promoslist = Promos.getPromos();
    console.log($scope.promoslist);
})

在promo_list.html中

代码语言:javascript
复制
<ion-list ng-if="promoslist.length > 0" can-swipe="true">
    <ion-item ng-repeat="promoslist in promo" type="item-text-wrap"
              href="#/app/local/{{promo.$id}}">
        <img ng-src="{{promo.photo}}" />
        {{local.title}}
    </ion-item>
</ion-list>

结果

EN

回答 3

Stack Overflow用户

发布于 2017-02-15 17:00:34

这样如何:

代码语言:javascript
复制
var ref = firebase.database().ref('/promotions/');
ref.on('value', function(snapshot) {
    snapshot.forEach(function(data) {
    console.log(data.key + " = " + data.val().yourpoerty);
});

实际上,快照是您的数组。如果您想要只包含数据的某种普通数组,您可以创建一个数组并手动将其添加到数组中。祝好运。

票数 0
EN

Stack Overflow用户

发布于 2017-02-16 16:51:32

您好,感谢您的回答您的代码工作,以分组促销,但现在我有另一个问题,列出我更改了代码,以创建一个包含所有促销的数组,如下所示:

my code:

代码语言:javascript
复制
var promoslist = [];

promos = ref.child('promotions');

            promos.on('value', function(snapshot) { 
                snapshot.forEach(function(data) {
                promoslist.push(data.val());
            });
            });



 **To list via the code below:**

   <ion-list ng-if="promoslist.length > 0">
  <Ion-item ng-repeat = "promo in promoslist">
      {{Promo}}
    </ Ion-item>
  </ion-list>

在本例中,我有2个商店,有4个促销,但是代码生成了一个包含每个商品的两个促销的二维数组,因此ng-repeat只运行两次,如果我将列表更改为索引ex:

代码语言:javascript
复制
<Ion-item ng-repeat = "promo in promoslist[0]">

我只想创建一个包含所有促销信息的一维数组,以便一次列出所有促销信息。如何创建一个包含所有促销信息的简单数组?

如图所示:

Resuult

票数 0
EN

Stack Overflow用户

发布于 2017-02-19 14:42:07

我找到了在ng-repeat中执行循环-重复组合的解决方案,如下所示:

代码语言:javascript
复制
<ion-list ng-if="promoslist.length > 0" can-swipe="true" >
<div ng-repeat="promo in promoslist[0]">
            <ion-item ng-repeat="promo in promoslist[$index]" type="item-text-wrap" class="item-avatar"
                      href="#/app/promo/{{promo.idstore}}/{{promo.id}}"  ng-if="promo.status==='active'">
                <img ng-src="{{promo.image}}"/>
                {{promo.title}}
                <p>{{promo.store}}</p>
            </ion-item>
            </div>
        </ion-list>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42231540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档