openui5 ActionSelect未在下拉列表中显示ListItems

时间:2015-11-28 17:41:36

标签: sapui5 sap.m

我正在尝试在我的应用程序中使用sap.m.ActionSelect(因为我喜欢选择和操作按钮的组合)。但是,即使在这个简单的测试中,我也无法让下拉列表显示除第一项之外的任何内容。我确信我做的事情完全是愚蠢的,但是这个让我挨打。如果有人能发现故意的错误,我将不胜感激!

<!doctype html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>ActionSelect</title>
<script id="sap-ui-bootstrap" src="../openui5/sap-ui-core.js" data-sap-ui-theme="sap_bluecrystal" data-sap-ui-libs="sap.ui.commons"
    data-sap-ui-libs="sap.ui.unified" data-sap-ui-libs="sap.m"
    data-sap-ui-resourceroots='{
        "sparqlish":"../",
                "sparqlish":"../sparqlish",
         "Components":"../",
                "Components":"../Components"
    }'
    data-sap-ui-xx-bindingSyntax="complex" type="text/javascript"></script>
<script type="text/javascript">

jQuery.sap.require("sap.m.ActionSelect");
jQuery.sap.require("sap.m.Button");
this.oServiceSelect = new sap.m.ActionSelect();
var oItem = new sap.ui.core.ListItem("Country1");
oItem.setText("Canada");
this.oServiceSelect.addItem(oItem);
oItem = new sap.ui.core.ListItem("Country2");
oItem.setText("Deutschland");
this.oServiceSelect.addItem(oItem);
oItem = new sap.ui.core.ListItem("Country3");
oItem.setText("England");
this.oServiceSelect.addItem(oItem);
oItem = new sap.ui.core.ListItem("Country4");
oItem.setText("Россия");
this.oServiceSelect.addItem(oItem);
this.oServiceSelect.setEnabled(true);
this.oServiceSelect.placeAt("serviceMenu");
this.oServiceSelect.addButton(new sap.m.Button({
    text : "Action 1",
    press : function(){alert("Action 1")}
}));
this.oServiceSelect.addButton(new sap.m.Button({
    text : "Action 2",
    press : function(){alert("Action 2")}
}));

</script>
</head>
<body>
    <div id="serviceMenu"></div>
</body>
</html>

2 个答案:

答案 0 :(得分:2)

您在代码中遇到了几个问题。首先,您在bootstrap上加载具有三个不同属性的库。这是错的!而只需使用一个属性并列出您想要用逗号分隔的库。

代码中的另一个问题是你要加载sap.ui.commons和sap.m.根据经验you should never ever mix sap.ui.commons and sap.m!这非常重要。

在你的情况下你可以并且绝对应该完全删除sap.ui.commons,因为就我从你的代码中看到它你还没有使用它。

答案 1 :(得分:-2)

看来,声明data-sap-ui-libs的顺序很重要。上例中的原始订单是:

data-sap-ui-libs="sap.ui.commons" 
data-sap-ui-libs="sap.ui.unified"
data-sap-ui-libs="sap.m"

但是,如果我将这些重新排序到以下,使用data-sap-ui-libs =&#34; sap.m&#34;一切顺利

data-sap-ui-libs="sap.m"
data-sap-ui-libs="sap.ui.commons"
data-sap-ui-libs="sap.ui.unified"