Sitecore Speak - 在JavaScript中设置Expander的标题

时间:2016-03-20 22:42:18

标签: sitecore sitecore-speak-ui

使用cintelUtil,我可以非常轻松地为数据绑定设置大多数SPEAK控件的Text。但对于扩展器,我似乎无法设置它。 setText无效。

应该注意我的Expander在DataRepeater项目中。因此,它将动态呈现数据所需的数量。现在我在Expander渲染中设置文本,但由于DataRepeater,我需要它是动态的。

以下是将数据绑定到模板的功能。 Expander的名字是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);
}

1 个答案:

答案 0 :(得分:0)

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

  1. 使用Advanced Expander代替我正在使用的普通Expander。
  2. 使用模板/ sitecore / client / Business Component Library /版本1 / Layouts / Renderings / Containers / AdvancedExpander / AdvancedExpander参数创建项目
  3. 在该项目中,您可以设置您的手风琴参数。即默认情况下是否打开,是否可以打开等等。
  4. 在Advanced Expander中,将数据源设置为步骤3中新创建的项目。
  5. 当Advanced Expander与数据源一起使用时,在Backbone中会出现一个名为“header”的新属性。我们可以在代码中设置此属性来设置值。使用代码“subapp.InfoExpander.set(”header“,data.Name);”要做到这一点。
  6. 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);
    }