如何在dojo路由器中显示视图?

时间:2013-01-02 08:09:14

标签: javascript mobile require dojo

我在dojo中创建了一个模板,如下所示。

<div id="test" data-dojo-type="dojox.mobile.View" class="test">
     <h1>TESTER</h1>
</div>

并导入一些dojo库并遵循dojo文档的代码。

require(["dojo/router"], function(router){
  router.register("test/:id", function(evt){
    // Will fire when the hash matches
    // evt.params.id will contain what is passed in :id
  });

  // Startup must be called in order to "activate" the router
  router.startup();
});

我已经完成了在网址中获取':id'的值,但我的浏览器控制台中显示错误。

Uncaught TypeError: Cannot call method 'isVisible' of undefined

这是因为没有为位置哈希调用和触发的模板,并且我的模板的ID不相同(id ='test'和'test /:id'),因为我需要一个动态网址。

先谢谢,上帝保佑.. ^ _ ^

1 个答案:

答案 0 :(得分:0)

这只是我如何做的一个例子,非常简单

require(["dojo/router", "dojo/dom"], function(router, dom){
    //Have a config, matching id/widget
    var pages = {
        "id1": "some/widget1",
        "id2": "some/widget2",
    }
    router.register("test/:id", function(evt){
        //require the widget and place it in some div
        require([pages[evt.params.id], function(Page){
            (new Page()).placeAt(dom.byId('somDiv'));
        });
    });


    router.startup();
});