1

dijitBorderContainerContentPane使用し、既存のHTML /マークアップを使用し、dojo / parseの.parse()メソッドの使用を回避する方法はありますか?

dojo / dijitのsvnトランクで最新のコードでRequireJSを使用しようとしていますが、RequireJSに存在しないメソッド.parse()に依存しているため、使用できません。require.on

私は既存のテンプレートを持っており、既存の要素を設定するためのパラメーターを受け取らない限り、プログラムで作成できないことに注意してくださいBorderContainer(変更/削除できない既存のコンテンツもあります)。

4

2 に答える 2

2

はい、すべてのウィジェットはプログラムで作成できます。これがdojo/parserが内部で行うことです。

例として:

require(["dojo/ready", "dijit/layout/BorderContainer", "dijit/layout/ContentPane", "dijit/layout/TabContainer"], function(ready, BorderContainer, ContentPane, TabContainer){
    ready(function(){
        // create a BorderContainer as the top widget in the hierarchy
        var bc = new BorderContainer({style: "height: 500px; width: 800px;"});

        // create a ContentPane as the left pane in the BorderContainer
        var cp1 = new ContentPane({
            region: "left",
            style: "height: 100px",
            content: "hello world"
        });
        bc.addChild(cp1);

        // create a TabContainer as the center pane in the BorderContainer,
        // which itself contains two children
        var tc = new TabContainer({region: "center"});
        var tab1 = new ContentPane({title: "tab 1"}),
        tab2 = new ContentPane({title: "tab 2"});
        tc.addChild( tab1 );
        tc.addChild( tab2 );
        bc.addChild(tc);

        // put the top level widget into the document, and then call startup()
        document.body.appendChild(bc.domNode);
        bc.startup();
    });
});
于 2013-01-05T20:03:47.857 に答える
0

私はパーサーのrequire.onに精通していません。DojoローダーはRequireJSに準拠している必要があります。

とにかく、すべてをウィジェットでラップすることをお勧めします。テンプレートシステムはパーサーと同じではありません。次に、そのマスターウィジェットをプログラムで呼び出して、オプションを渡すことができます。

于 2013-01-02T01:40:13.247 に答える