javascript - 在 SAPUI5 中使用 FacetFilters 在图表容器中进行过滤

标签 javascript charts sapui5

我正在使用 SAPUI5 库,我想将 FacetFilter 与 ChartContainer 元素一起使用。当我单击 FacerFilter 中的复选框时,我希望图表容器中的某些图表会受到影响。图表容器可以在下面的链接中找到: https://sapui5.hana.ondemand.com/sdk/explored.html#/entity/sap.suite.ui.commons.ChartContainer/samples 所以我的问题是如何将我的 facetfilters 项目与容器图表绑定(bind)。 我的测试.view.xml;

Edit1:我将 FacetFilters 放在 dimensionselector 中。

 <ChartContainer
    id="idChartContainer"
    showFullScreen="true"
    showPersonalization="true"
    autoAdjustHeight="true"
    showLegend="true"
    personalizationPress="attachPersonalizationPress"
    contentChange="attachContentChange">

    <dimensionSelectors>
        <m:FacetFilter
            id="facetFilterChart2"
            type="Simple"
            showPersonalization="false"
            showReset="true"
            reset="onFacetFilterReset" showPopoverOKButton="true">

            <m:lists>

                <m:FacetFilterList 
                    title="{oModel>/Facet01/Title}"
                    key="{oModel>/Facet01/Key}"
                    multiselect="true"
                    listClose="onFacetClosed"
                    items="{oModel>/Facet01/Items}" >

                    <m:items>
                        <m:FacetFilterItem
                             key="{oModel>Key}"
                             text="{oModel>Text}" />
                    </m:items>
                </m:FacetFilterList>

            </m:lists>
        </m:FacetFilter>
    </dimensionSelectors>

    <content>
        <ChartContainerContent
            icon = "sap-icon://horizontal-bar-chart" 
            title = "vizFrame Bar Chart Sample"> 
            <content>
                <viz:VizFrame id="idoVizFrame"> </viz:VizFrame>
            </content>
        </ChartContainerContent>
                    ... 

我想在我的可视化框架中使用这些 facetfilters 并使用 facet 过滤器复选框过滤我的数据。还有我的 test.controller.js;

oModel : {

      Toolbar : {

        Design : "Solid"
      },

      Facet01 : {
        Key : "Facet01",
        Title : "Departmanlar",
        Items : [
          { Key : "k1", Text : "İnsan Kaynakları" },
          { Key : "k2", Text : "Satış & Pazarlama" },
          { Key : "k3", Text : "Satınalma" },
          { Key : "k4", Text : "Finans" },
          { Key : "k5", Text : "SSH" }
        ]

      }
},

onInit : function(oEvent) {
      var oVizFrame = this.getView().byId("idoVizFrame");
      oVizFrame.setDataset(oDataset2);
      oVizFrame.setModel(amModel2);
      oVizFrame.addFeed(feedPrimaryValues2);
      oVizFrame.addFeed(feedAxisLabels2);
      oVizFrame.setVizType('bar');
      var oSelect1 = this.getView().byId("idoSelect1");

最佳答案

您的 XML 绑定(bind)看起来不正确。正确的做法是:

<m:FacetFilter
            id="facetFilterChart2"
            type="Simple"
            showPersonalization="false"
            showReset="true"
            reset="onFacetFilterReset" 
            showPopoverOKButton="true"
            lists="{model>/Facet01}">
            <m:lists>
                <m:FacetFilterList 
                    title="{oModel>Title}"
                    key="{oModel>Key}"
                    multiselect="true"
                    listClose="onFacetClosed"
                    items="{oModel>/Items}" >
                    <m:items>
                        <m:FacetFilterItem
                             key="{oModel>Key}"
                             text="{oModel>Text}" />
                    </m:items>
                </m:FacetFilterList>
            </m:lists>
</m:FacetFilter>

controller中设置模型

var oFacetFilterModel = new sap.ui.model.json.JSONModel(this.oModel);
this.getView().byId("facetFilterChart2").setModel(oFacetFilterModel,"oModel");

关于javascript - 在 SAPUI5 中使用 FacetFilters 在图表容器中进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29576123/

相关文章:

sapui5 - "Modules that use an anonymous define() call must be loaded with a require() call"

javascript - Angular js : ng-min\ng-max

c++ - Visual C++ 2008 的免费图表库

javascript - 带有内圆的 Jquery 饼图

this - .this 或 sap.ui.getCore().byId()

javascript - SAP UI5 : Fill XML-Dropdown dynamically using Lifecycle Hook Function

javascript - 如何更改 paper.js 中点的选择样式?

javascript - 用JS四舍五入到小数点后两位

javascript - Angular 1.2升级后Angular UI-Select下拉值问题

javascript - 通过 slider 进行饼图 Controller