我第一次弄乱了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);
}
答案 0 :(得分:1)
使用activationData时,您必须指定要激活的模型。