Knockout.js 将特定上下文传递给子级的自定义绑定?

Knockout.js 将特定上下文传递给子级的自定义绑定?,knockout.js,Knockout.js,我在Knockout中创建了一个自定义绑定,用于生成一个窗口并设置默认值 窗口进行ajax调用,以检索将用作其内容的模板 是否有办法确保此内容被绑定? i、 e一旦将模板加载到页面中,我希望模板中的任何敲除绑定都能够呈现/处理 除此之外,是否有一种方法可以设置内容绑定的上下文? i、 从我的自定义绑定中,我想说我的'value.contentOptions'对象是加载到窗口中的内容的起始级别 我觉得这是ko.applybindingstogenders、bindingContext.create

我在Knockout中创建了一个自定义绑定,用于生成一个窗口并设置默认值

窗口进行ajax调用,以检索将用作其内容的模板

是否有办法确保此内容被绑定?

i、 e一旦将模板加载到页面中,我希望模板中的任何敲除绑定都能够呈现/处理

除此之外,是否有一种方法可以设置内容绑定的上下文?

i、 从我的自定义绑定中,我想说我的'value.contentOptions'对象是加载到窗口中的内容的起始级别

我觉得这是ko.applybindingstogendersbindingContext.createChildContextko.applybindingstoodecontrolsDescentBindings的某种组合,但我恐怕无法理解

我会发布代码,但在这一点上它只是猜测D:-如果你想看到我的一些绑定代码,请告诉我

我在尝试做的事情中看到了一些警告:

内容很可能在绑定完成后才加载,因为它是异步的,并且可能必须转到服务器


我的自定义绑定是剑道窗口的包装器,我正在尝试使用其内置的“内容”功能调用applyBindings时可以使用第二个参数。第一个参数是必需的,即viewmodel。第二个参数是可选的,它是应该应用绑定的DOM元素(默认值是整个页面)

以下是一个例子:

<div id="templateGoesHere"></div>
<div id="otherPart">
    <div data-bind="text: otherStuff"></div>
</div>​
以及相应的javascript:

var vm = {
    messages : {
        myMessage : ko.observable("Hello World!")
    },
    otherStuff : ko.observable("Nothing to see here")
};

// Apply bindings to the part of the page that doesn't
// include where the template will go
ko.applyBindings(vm, $('#otherPart')[0]);

// Get template from elsewhere
var template = "<span data-bind='text: myMessage'></span>";
// Add template to page
$('#templateGoesHere').html(template);
// Bind data to template
ko.applyBindings(vm.messages, $('#templateGoesHere')[0]);
​
var-vm={
信息:{
myMessage:ko.observable(“你好,世界!”)
},
其他东西:ko.observable(“这里没什么可看的”)
};
//将绑定应用于页面中不包含的部分
//包括模板将要去的地方
ko.applyBindings(vm,$(“#其他部分”)[0]);
//从别处获取模板
var模板=”;
//将模板添加到页面
$('#templategoesher').html(模板);
//将数据绑定到模板
ko.applyBindings(vm.messages,$(“#templategoesher”)[0]);
​
您有一个div(templategoesher),可以在其中插入模板,在将模板添加到页面后,调用applyBindings,告诉knockout仅将绑定应用于模板

此外,应用绑定时,可以指定只希望viewmodel的一部分(vm.messages)用于绑定,而不是整个viewmodel


这正是我所做的为什么我的组合框绑定(它是一个用于击倒的未剪切组合框)

我使用自定义模板源(而不是使用脚本标记的内置模板),然后使用ko.renderTemplate和constrol descents true,请参见我的答案

编辑:关于加载异步ajax模板,在init时可以绑定到一个空的伪模板,然后当实际模板加载到该模板时,只需确保将模板名称绑定到一个可观察的模板