Durandal js,所有功能在启动时激活

Posted

技术标签:

【中文标题】Durandal js,所有功能在启动时激活【英文标题】:Durandal js, all functions activate at startup 【发布时间】:2018-12-26 10:16:52 【问题描述】:

我有一个用 Durandal js 和 knockoutJs 包编写的 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');
);

);

【问题讨论】:

触发了什么函数?你能提供一个例子或代码吗? 【参考方案1】:

我相信这可能与事件在 html 绑定上的绑定方式有关。如果它们像这样使用 data-bind="click: clickHandler()" 它可能会在处理绑定时调用该函数。 相反,删除括号,使其指向一个函数而不是调用它。 data-bind="click: clickHandler"

【讨论】:

以上是关于Durandal js,所有功能在启动时激活的主要内容,如果未能解决你的问题,请参考以下文章

Durandal - 激活 DOM 后运行 datePicker

Durandal:在一个孩子中创建功能并从另一个孩子中消费

Durandal Compose:激活方法并不总是被调用

如何使 jQuery AutoComplete 功能在 Durandal 中工作?

使用 Knockout 在 Durandal JS 框架中添加和运行 JQuery

Select2 Js 下拉菜单在 durandal Js 中不起作用