0

我正在学习 Dojo 并尝试在 WebShere 应用程序服务器上创建一个 iWidget。

我首先尝试创建Helloworld小部件。哪个被部署了。

现在我想添加模板。

我在模板文件夹中创建了一个LoginCmis.html这个模板是用于询问用户名和密码的 gui。

CustomerInteraction.js我创建了一个模板 String 。如何在onLoad.

 <div class = LoginCmis>
        <div dojotype="dijit.layout.BorderContainer" id="BorderContainer"
        design="headline" style="height: 250px; width: 400px" align="center">

            <div preload="true" dojotype="dijit.layout.ContentPane" 
                region="top">Login CMIS
            </div>
            <div preload="true" dojotype="dijit.layout.ContentPane" region="centre">

                <table class="form">
                    <tr>
                        <td>UserName</td>
                        <td><input type="text" dojotype="dijit.form.ValidationTextBox"
                            name="username" required="true" maxLength=64 trim="true"
                            style="width: 200px; text-align: left" 
                            dojoattachpoint="username"/>
                        </td>
                    </tr>
                    <tr>
                        <td>Password</td>
                        <td><input type="password" name="password" value=""
                            dojotype="dijit.form.ValidationTextBox" 
                            style="width: 200px; text-align: left"
                            dojoattachpoint="password"/>
                        </td>
                    </tr>
            </table>
        </div>
        </div>
    </div>

在我的CustomerInteraction.xml(这是为了你好世界,我必须在这里做任何改变)的内容

<iw:content mode="view">
        <![CDATA[
              <div id ="helloWorld" > Hello World ! </div>
       ]]>
 </iw:content>

customerInteraction.js

    dojo.provide("helloWorldScope");
    dojo.require("dijit._Widget");
    dojo.require("dijit._Templated");
    dojo.declare("",[ dijit._Widget, dijit._Templated ],{

        templateString : dojo["cache"]("iWidget/widgets/CustomerInteraction", "Template/LoginCmis.html");


        msg1: "Hello World Class Loaded",
        msg2: "Hello World, again",


    onLoad:function() {
            alert(this.msg1);
        }
});

要查看此模板,我必须进行哪些更改?

文件夹设计看这个

4

1 回答 1

1

将此 mixin 添加_WidgetsInTemplateMixin到您的声明中。

小部件没有onLoad调用/绑定的默认函数。然而,它将作为构建自身的最后阶段,调用startup

确保 dojo 知道在哪里寻找你的模块并创建一个带有类型的 div,以便 dojo.parser 可以将它识别为一个小部件。

客户交互.xml:

 <script>
      dojo.registerModulePath("iWidgets", "/iWidget");
      dojo.require("iWidget.widgets.customerInteraction");
 </script>
 <div dojoType="iWidget.widgets.customerInteraction"></div> ... </body>

WebContent/iWidget/widgets/customerInteraction.js

dojo.declare("iWidget.widgets.customerInteraction",[ dijit._Widget, dijit._Templated, dijit._WidgetsInTemplateMixin ],{
     ....
     buildRendering: function() {
          // pre-parser point in flow of construction
          // add you code here
          this.inherited(arguments);
     },
     startup: function() {
          // 'post create' point in flow of construction
          // add you code here
          this.inherited(arguments);
     }
});
于 2012-08-29T09:05:24.610 回答