在组件中使用上下文组件

页面上最好只有一个上下文组件,当我们要开发的组件,需要使用上下文组件时,可以在向页面添加组件时,使用页面上已有的上下文组件,或者创建一个新的上下文组件

在组件的设计时 js 文件的 init 方法中,判断页面上有没有上下文组件,如果没有就创建一个上下文组件,代码如下

    var ProjectQuery = ViewComponent.extend({
        init : function(value, bindingContext) {
            this.$domNode.addClass("cscecproject-ProjectQuery-designer");
            this.callParent(value, bindingContext);
            this.createContextComp();
        },

        createContextComp: function(){
            var $wxContext = this.ownerDesigner.dataModel.$root.find("*[componentName='wxContext:wxContext']:first");
            if ($wxContext.length == 0){
                var self = this;
                var $inv = this.ownerDesigner.dataModel.$root.find("*[componentName='$UI/wxsys/comps/inVisibleCompContainer/inVisibleCompContainer']:first");
                var invID = $inv.attr("d_id");
                xuiDoc.createComponent("wxContext:wxContext", invID, {
                    paintComponent : true,
                    autoSelect : false,
                    parent:invID
                });
            }
        }
    });

上下文组件支持使用 this.page.$$contextCompId 获取上下文组件的 ID,在组件的运行时 js 文件中,用如下的代码获取上下文组件

        let context = this.page.comp(this.page.$$contextCompId);

results matching ""

    No results matching ""