我在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'),因为我需要一个动态网址。
先谢谢,上帝保佑.. ^ _ ^
答案 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();
});