2

我在 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();
});

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

Uncaught TypeError: Cannot call method 'isVisible' of undefined

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

提前谢谢,上帝保佑.. ^_^

4

1 回答 1

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();
});
于 2016-01-05T21:58:32.567 回答