我正在创建一个排行榜,需要轮换包含团队想要查看的数据的视图。我和Durandal一起使用WebAPI(请和我一起玩......我是Durandal noob)
我有一组字符串,其中包含每个模块的名称。它位于Durandals app.js(名为moduleList)
define(['./system', './viewEngine', './composition', './widget', './modalDialog', './events'],
function(system, viewEngine, composition, widget, modalDialog, Events) {
var app = {
title: 'Application',
moduleList: [
"petsSoldToday",
"conversionRatioToday"
]
.
.
.
};
Events.includeIn(app);
return app;
});
我想做的是在循环上调用router.activate([moduleName]),以便逐个显示所有模块。
我尝试在shell.js激活函数中创建一些简单的函数,它基本上调用
setTimeout(router.activate(current), 10000);
当前是列表中的下一个模块。但是,这会导致javascript错误
未捕获的SyntaxError:意外的标识符
我没有在堆栈中看到任何显示原因的内容。老实说,我不知道还有什么可以尝试。
所以,这是我的问题:如何做到这一点?它可以完成吗?
答案 0 :(得分:2)
setTimeout函数中的代码立即执行,然后将该值传递给setTimeout方法(给定错误,因为activate不返回函数)。
你应该把它放在一个闭包中:
setTimeout(function(){
router.activate(current)
}, 10000);