Dojo小部件无法正确呈现

时间:2016-02-14 16:02:45

标签: javascript dojo ibm-mobilefirst

我正在使用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日期文本框和一个货币字段,但它们无法正确呈现。

enter image description here

感谢任何建议和帮助

1 个答案:

答案 0 :(得分:1)

似乎没有加载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>

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

希望这有帮助