ActivationData仅在Durandal中显式设置模型时传递

时间:2014-08-26 17:31:06

标签: knockout.js durandal composition

我第一次弄乱了Durandal 2.1.0并发现了一些我不理解的奇怪事情。

我有一个名为 composedView 的可观察对象,它被绑定到我页面上的选择控件。我已经加载了带有两个值的选项,'compositionTest1'和'compositionTest2'。

在页面的另一部分,我有一个带有compose绑定的div元素,我已经将绑定的activationData属性设置为'Here'。

如果我使用这种语法

<div data-bind="compose: composedView, activationData:'Here'"></div> 

加载视图并触发viewModel的activate函数,但始终未定义activationData参数。

然而!如果我这样做:

<div data-bind="compose: {model:composedView, activationData:'Here'}"></div> 

然后触发activate函数并正确填充activationData。除非我指定要绑定的模型对象,否则为什么不填充activationData的任何想法?

由compose绑定加载的模块正在使用构造函数,我已经将激活回调添加到protoype,如下所示:

ctor.prototype.activate = function (activationData) {

    var self = this;
    console.log(activationData);

}

1 个答案:

答案 0 :(得分:1)

使用activationData时,您必须指定要激活的模型。