【问题标题】:Sitecore Speak - Set the title of an Expander in JavaScriptSitecore Speak - 在 JavaScript 中设置扩展器的标题
【发布时间】:2016-03-21 12:48:03
【问题描述】:

使用 cintelUtil,我可以很容易地为大多数 SPEAK 控件设置数据绑定的文本。但是对于扩展器,我似乎无法设置它。 setText 无效。

需要注意的是,我的 Expander 位于 DataRepeater 项中。因此,它将根据数据的需要动态呈现尽可能多的数据。现在我在 Expander 渲染中设置文本,但由于 DataRepeater,我需要它是动态的。

下面是绑定数据到模板的函数。扩展器的名称是 InfoExpander。

    setupCompanyInfo: function (intelBaseUrl) {

                  providerHelper.initProvider(this.CompanyInfoProvider,
                      "companyinfo",
                      intelBaseUrl,
                      this.ExternalDataTabMessageBar);

                  providerHelper.setupDataRepeater(this.CompanyInfoProvider, this.CompanyInfoRepeater);

                  this.CompanyInfoRepeater.on("subAppLoaded", function (args) {
                      var data = args.data,
                          subapp = args.app;

                      cintelUtil.setText(subapp.InfoName, data.Name, true);
                      cintelUtil.setText(subapp.InfoExpander, data.Name, true);

                  }, this);

                  providerHelper.getListData(this.CompanyInfoProvider);
}

【问题讨论】:

    标签: sitecore sitecore-speak-ui


    【解决方案1】:

    通过大量调试和对 Backbone 的更好理解,我找到了答案。

    1. 使用高级扩展器代替我使用的普通扩展器。
    2. 使用模板 /sitecore/client/Business Component Library/version 1/Layouts/Renderings/Containers/AdvancedExpander/AdvancedExpander 参数创建项目
    3. 在该项目中,您可以设置手风琴的参数。即是否默认打开,是否可以打开等。
    4. 在 Advanced Expander 中,将数据源设置为步骤 3 中新创建的项目。
    5. 当高级扩展器与数据源一起使用时,在 Backbone 中会显示一个名为“header”的新属性。我们可以在我们的代码中设置这个属性来设置值。使用代码“subapp.InfoExpander.set("header", data.Name);"来实现这一点。

    setupCompanyInfo: function (intelBaseUrl) {    
        providerHelper.initProvider(this.CompanyInfoProvider,
            "companyinfo",
            intelBaseUrl,
            this.ExternalDataTabMessageBar);
    
        providerHelper.setupDataRepeater(this.CompanyInfoProvider, this.CompanyInfoRepeater);
    
        this.CompanyInfoRepeater.on("subAppLoaded", function (args) {
            var data = args.data,
                subapp = args.app;
    
            cintelUtil.setText(subapp.InfoName, data.Name, true);
    
            subapp.InfoExpander.set("header", data.Name);
    
        }, this);
    
        providerHelper.getListData(this.CompanyInfoProvider);
    }

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多