Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Knockout.js 仅当在Durandal中显式设置模型时,才传递ActivationData_Knockout.js_Durandal_Composition - Fatal编程技术网

Knockout.js 仅当在Durandal中显式设置模型时,才传递ActivationData

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

我第一次玩Durandal 2.1.0,注意到一些奇怪的东西,我不明白

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

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

如果我使用这种语法

<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);

}