Knockout.js 在击倒绑定上获取元素?

Knockout.js 在击倒绑定上获取元素?,knockout.js,Knockout.js,当下面的foreach被绑定时,我需要能够让一个视图从$.get或只是硬编码向“body”div添加html。我需要的“模型”是那个虚拟机,但我不知道如何让虚拟机添加html到页面 <!--ko foreach:modules --> <div class="module" data-bind="attr: {id:id}"> <div class="head" data-bind="text:title"></div> <d

当下面的foreach被绑定时,我需要能够让一个视图从$.get或只是硬编码向“body”div添加html。我需要的“模型”是那个虚拟机,但我不知道如何让虚拟机添加html到页面

<!--ko foreach:modules -->
<div class="module" data-bind="attr: {id:id}">
    <div class="head" data-bind="text:title"></div>
    <div class="body" data-bind=""></div>
</div>
<!-- /ko -->


my.Module = function (mod) {
    var m = mod || { },
        id = m.id || new Date().getTime(),
        css = ko.observable(m.css || { }),
        title = ko.observable(m.title || 'New Module'),
        privy = ko.observable(),
        model = ko.observable(new my.Models.DailyStatus());
    return {
        id: id,
        css: css,
        title: title,
        privy: privy,
        model: model
    };
};

my.Models.DailyStatus = function () {

    var venues = ko.observableArray(),
        init = function () {
            //Get HTML specific to my needs
            //Add to desired area of page
            //?????


            // Get data to fill venues
            update();
        },
        update = function () {
            my.service.getNewVenues(function (c) {
                venues(c.d.Payload);
            });
        };

    init();
    return {
        init: init,
        update: update,
        venues: venues
    };
};

my.Module=函数(mod){
var m=mod |{},
id=m.id | | new Date().getTime(),
css=ko.可观察(m.css |{}),
title=ko.可观察(m.title | |新模块),
privy=ko.可观察(),
model=ko.observable(新的my.Models.DailyStatus());
返回{
id:id,
css:css,
标题:标题,,
秘密的,秘密的,
型号:型号
};
};
my.Models.DailyStatus=函数(){
var=ko.observearray(),
init=函数(){
//获取特定于我的需要的HTML
//添加到页面的所需区域
//?????
//获取数据以填充场地
更新();
},
更新=函数(){
my.service.GetNewVinces(功能(c){
场馆(c.d.有效载荷);
});
};
init();
返回{
init:init,
更新:更新,
场地:场地
};
};

有没有一种方法可以让我的模型知道哪个元素将是他的宿主?

不太确定这是否是您要问的,但是当您使用
ko.applybindings()
方法启动应用程序绑定时,您可以传入第二个参数,指定要绑定到哪个DOM元素

ko.applyBindings(myViewModel, document.getElementById("Some-Element"));

这在评论中得到了回答,所以我想我会把它移到我可以选择作为答案的地方

“html”绑定就是所需的一切


由于我的特殊需要,我似乎无法在插入的html中获得ko绑定来呈现/执行操作,因此我转而使用带有函数的模板标记作为其值,这也提供了插入html的有效方法。

您看过
html
绑定了吗?这就是我所需要的,我觉得在文档中没有注意到这一点很愚蠢。然而,我试图使用它,但我想插入的HTML中也有KO绑定。。。我无法/似乎无法使用HTML绑定应用绑定,因为我已经使用了模板绑定。恐怕这不是我想要的