在组件中使用上下文组件

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

在组件的设计时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 ""

    results matching ""

      No results matching ""