Dojo 小部件无法正确呈现

Dojo widgets not rendering correctly

我正在使用 Eclipse Mars 4.5.0 和 MobileFirst Studio 7.1 插件。

我正在使用内置的 dojo 库并遵循 IBM 知识中心的文档:https://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.dev.doc/wl_studio_tools/topics/cdojolibprjsetupwl.html

我在浏览器上查看应用程序时无法查看任何 dojo 小部件。正确呈现 Dojo 移动小部件;我有一个滑块、单选按钮和圆角矩形窗格。在下图中,我尝试放置一个 dojo 日期文本框和一个货币字段,但它们无法正确呈现。

感谢任何建议和帮助

似乎没有加载 dijit 主题。

尝试将主题包含在您应用程序的 index.html 文件中:

<link rel="stylesheet" href="dijit/themes/claro/claro.css">

确保您的 www 文件夹中有主题和图标文件夹(www/digit/themes/claro 和 www/digit/icons)

在您提供的项目中,我没有在索引中看到 CurrencyTextBox 或 DateTextBox 小部件。

但要使这些小部件正常工作,请确保将模块包含在 main.js 中的 dojoInit() 函数中:

function dojoInit() {
    require([ "dojo/ready", "dojo/parser", "dojox/mobile", "dojo/dom", "dijit/registry", "dojox/mobile/ScrollableView", 
        "dijit/form/CurrencyTextBox", "dijit/form/DateTextBox"], 
        function(ready) {
           ready(function() {
        });
    });
}

在你的索引中你应该有这样的东西:

<body style="display: none;" class="claro">
        <div data-dojo-type="dojox.mobile.ScrollableView" id="view0" data-dojo-props="selected:true">
        <!--application UI goes here-->
        <label for="income1">U.S. Dollars</label>
        <input type="text" name="income1" id="income1" value="54775.53" required="true" 
        data-dojo-type="dijit/form/CurrencyTextBox" data-dojo-props="constraints:{fractional:true},currency:'USD', invalidMessage:'Invalid amount. Cents are required.'" />
        <br>
        <label for="date1">Drop down Date box:</label>
        <input type="text" name="date1" id="date1" value="2005-12-30"
        data-dojo-type="dijit/form/DateTextBox"
        required="true" />
    </div>
    <script src="js/initOptions.js"></script>
    <script src="js/main.js"></script>
    <script src="js/messages.js"></script>
</body>

(不要忘记将主题 class 名称添加到父 <body> 元素)

希望对您有所帮助