当下面的foreach绑定时,我需要能够将视图添加到' body' div来自$ .get或刚刚硬编码。我需要' model'是那个vm,但我不知道如何让vm将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
};
};
有没有一种方法可以让我的模型知道哪个元素将成为他的主持人?
答案 0 :(得分:0)
不确定这是否是您所要求的,但是当您使用ko.applybindings()
方法启动应用程序绑定时,您可以传入第二个参数,该参数指定您希望绑定到哪个DOM元素。 / p>
ko.applyBindings(myViewModel, document.getElementById("Some-Element"));
答案 1 :(得分:0)
这在评论中得到了解答,所以我想我会把它移到我可以选择作为答案的地方。
只需要'html'绑定。
对于我的特殊需求,我似乎无法在插入的html中获取ko绑定来呈现/执行操作,因此我切换到使用带有函数作为其值的模板标记,这也提供了插入html的有效方法。