我有一个用Durandal js和淘汰赛包编写的SPA,
当我运行程序时,在启动时触发了所有function ()
函数,
大多数必须由某些操作(例如点击事件等)触发
它工作正常,但我不需要在启动时被触发。
我该如何控制?
这是main.js的样子:
define(jquery, function () { return jQuery; });
define('knockout', ko);
define(['durandal/system', 'durandal/app', 'durandal/viewLocator', 'bootstrap'], function (system, app, viewLocator) {
app.title = 'Durandal Starter Kit';
app.configurePlugins({
router: true,
dialog: true
});
app.start().then(function () {
//Replace 'viewmodels' in the moduleId with 'views' to locate the view.
//Look for partial views in a 'views' folder in the root.
viewLocator.useConvention();
//Show the app by setting the root view model for our application with a transition.
app.setRoot('shell', 'entrance');
});
});
答案 0 :(得分:0)
我相信这可能与事件在html绑定上的绑定方式有关。如果这样使用
data-bind="click: clickHandler()"
可能会在处理绑定时调用该函数。
取而代之的是,删除括号,使其指向函数而不是调用它。
data-bind="click: clickHandler"