闭包forEach获取值的问题,急

require(['../../common/common-d10c9dda2d.js'],function(common){
    require(['utils','specialBanner','SpecialCourseSeries','SpecialConference','SpecialArticleModel','Pullload','specialList'],function(utils,specialBanner,SpecialCourseSeries,SpecialConference,SpecialArticleModel,Pullload,specialList) {

        var videoList = {
            containerId:'college-channel-content1',
            // subjectId:utils.optUrlParams("subjectId")||"",
            subjectId:"850192620763222016",
            subjectCategoryId:"848649468520697856",
            startIndex:0,
            pageSize:20,
            init:function(){
                var _this = this;
                var banner = new specialBanner("banner-container");
                banner.init();
                this.getBanner(function(data){
                    banner.update(data);
                })
                var mPullload = new Pullload("video-list-page","",_this.dataApi.bind(_this),_this.pageSize,_this.dataInit.bind(_this),window);
                mPullload.init();
                // utils.pullRefresh($(".main-content")[0],mPullload.init.bind(mPullload));
                this.getApi(function(data){
                    $(".special-tab-container").html(_.template($("#special-tab-container").html())({ data: data }))
                    // slide function
                })
            },
            dataApi:function(callback){
                this.getApi(function(data){
                    data.subjectCategorys.forEach(function(el){
                        this.subjectCategoryId = el.subjectCategoryId;
                        this.startIndex = 0;
                        this.pageSize = 20;
                        this.subjectId = el.subjectId;
                        var params = {startIndex:this.startIndex,pageSize:this.pageSize,subjectId:this.subjectId,subjectCategoryId:this.subjectCategoryId}
                        huiguPost(function(data){
                            if(data.code == 0){
                                callback&&callback(data.data);
                            }else{
                                utils.Errordata();
                            }
                        },'http://develop.huiguqx.com/thirdpartyapi/subject/querySubjectArticles', params)
                    })
                })
            },
            dataInit:function(data){
                var _this = this;
                data&&data.forEach(function(el){
                    if(!el) return;
                    var index = 0;
                    var id = _this.containerId;
                    var element = null;
                    console.log(el);
                    switch(el.sourceType){
                        case 1: el.sourceType = 1;element = new SpecialArticleModel(id,el);break;
                        case 2: el.sourceType = 2;element = new SpecialCourseSeries(id,el);break;
                        case 3: el.sourceType = 3;element = new SpecialCourseSeries(id,el,_this.swiperIndex++);break;
                        case 4: el.sourceType = 4;element = new SpecialConference(id,el);break;
                    }
                    element&&element.init();
                    index++;
                })
            },
            getBanner:function(callback){
                var params = {subjectId:this.subjectId};
                huiguPost(function(data){
                    if(!data.data || data.data.length <= 0){
                        $("#video-list-page #banner-container").hide();
                    }else{
                        $("#video-list-page #banner-container").show();
                        callback&&callback(data);
                    }
                },'http://develop.huiguqx.com/thirdpartyapi/subject/getSubjectDetail',params)
            },
            getApi:function(callback){
                var params = {subjectId:this.subjectId};
                huiguPost(function(data){
                    if(data.code == 0){
                        callback&&callback(data.data);
                    }else{
                        utils.Errordata();
                    }
                },'http://develop.huiguqx.com/thirdpartyapi/subject/getSubjectDetail', params)
            }
        }
        videoList.init();
    })
})

代码如上,这里有两个api请求。第一个api请求的id需要和第二个api请求的id互相绑定。现在是subjectCategoryId
subjectCategoryId有四种
希望做成这样的效果

clipboard.png

现在是把所有subjectCategoryId 没做限制,所有内容跑在了分类4这个tab上。如果想每种subjectCategoryId只显示在一个tab里面,代码要如何修改?

阅读 3k
1 个回答

兄弟, 你这样子的问题会让进来看的人反手一个 ctrl+w 走掉的, 建议找到更具体一点的问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题