杜兰达尔的旋转景观

时间:2013-06-26 18:16:48

标签: javascript durandal

我正在创建一个排行榜,需要轮换包含团队想要查看的数据的视图。我和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:意外的标识符

我没有在堆栈中看到任何显示原因的内容。老实说,我不知道还有什么可以尝试。

所以,这是我的问题:如何做到这一点?它可以完成吗?

1 个答案:

答案 0 :(得分:2)

setTimeout函数中的代码立即执行,然后将该值传递给setTimeout方法(给定错误,因为activate不返回函数)。

你应该把它放在一个闭包中:

setTimeout(function(){
    router.activate(current)
}, 10000);