Bindings仅在Durandal 2.0中应用一次

时间:2013-09-06 14:51:37

标签: knockout.js durandal

我正在升级到Durandal 2.0,并且有一个奇怪的问题。我可以浏览我的网站,大多数工作都可以。除此之外,当调用视图时,绑定在激活后应用一次,但就是这样。之后,不会应用任何绑定:不在附加的挂钩中,也不在compositionComplete中。第一次申请后的任何时候都没有任何反应。我有一个搜索页面,我可以看到结果进入浏览器,但绑定不会显示它们。

这是一个很大的应用程序,很难重现。有没有人有类似的问题?

这是一个非常简单的测试视图,我有pb:

<section id="test-view" class="view"">

<h3 class="page-title" data-bind="text: v()"></h3>

<div data-bind="click: update">Update</div>

相关的viewmodel:

define(
function () {

    var v = ko.observable(Date.now());

    var activate = function() {    
    };

    var update = function () {
        console.log('update');
        console.log(Date.now());
        v(Date.now())
    }

    var vm = {
        v: v,
        update: update
    };
    return vm;
});

加载页面时,我看到正确的数字。然后我可以清楚地看到控制台中的点击工作,但屏幕上没有更新。

1 个答案:

答案 0 :(得分:0)

好的,我终于找到了答案。在main.js中,缺少这两行:

define('jquery', function() { return jQuery; });
define('knockout', ko);