Knockout.js 仅当在Durandal中显式设置模型时,才传递ActivationData
我第一次玩Durandal 2.1.0,注意到一些奇怪的东西,我不明白 我有一个名为composedView的可观察对象,它绑定到我页面上的选择控件。我已经用两个值“compositionTest1”和“compositionTest2”加载了select 在页面的另一部分,我有一个带有compose绑定的div元素,我已经将绑定的activationData属性设置为“Here” 如果我使用这种语法Knockout.js 仅当在Durandal中显式设置模型时,才传递ActivationData,knockout.js,durandal,composition,Knockout.js,Durandal,Composition,我第一次玩Durandal 2.1.0,注意到一些奇怪的东西,我不明白 我有一个名为composedView的可观察对象,它绑定到我页面上的选择控件。我已经用两个值“compositionTest1”和“compositionTest2”加载了select 在页面的另一部分,我有一个带有compose绑定的div元素,我已经将绑定的activationData属性设置为“Here” 如果我使用这种语法 <div data-bind="compose: composedView, activ
<div data-bind="compose: composedView, activationData:'Here'"></div>
使用activationData时,您必须指定要激活的模型。您在哪里看到可以这样使用它:
compose:composedView,activationData:'Here'
?因为activationData
是compose
绑定的属性,所以必须使用compose:{activationData:'Here'}
设置它,在这种情况下,您需要使用compose:{model:composedView,activationData:'Here'}设置模型
。我想我没有在任何地方看到过这种情况,我只是这样编码,因为文档中没有一个特定的示例显示这种语法。让我们看看这样做会发生什么。好吧,当我这样做时,{code>compose:composedView,{activationData:'Here'}它加载视图并启动激活函数,但我回到了未定义的activationData。它只使用compose:{model:composedView,activationData:'Here'}
。compose绑定可以采用“简单”值:字符串、属性等,也可以采用复杂对象,您可以在其中指定绑定的其他属性,如activationData
。啊,因此如果您想使用activationData,您需要指定对象,这意味着您必须声明模型或视图?我想我现在明白了。
<div data-bind="compose: {model:composedView, activationData:'Here'}"></div>
ctor.prototype.activate = function (activationData) {
var self = this;
console.log(activationData);
}