0

我正在创建一个排行榜,需要轮换包含团队想要查看的数据的视图。我正在将 WebAPI 与 Durandal 一起使用。

我有一个包含每个模块名称的字符串集合。这存在于 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);

current 是列表中的下一个模块。但是,这会导致 javascript 错误

未捕获的 SyntaxError:意外的标识符

我在堆栈中也没有看到任何说明原因的东西。老实说,我不知道还能尝试什么。

如何才能做到这一点?可以做到吗?

4

1 回答 1

2

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

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

setTimeout(function(){
    router.activate(current)
}, 10000);
于 2013-06-26T22:14:22.063 回答