我使用ko.renderTemplate
方法渲染模板。渲染模板后,我想显示我正在使用以下代码的谷歌图表:
return ko.renderTemplate("container-graph", config,
{
afterRender: function (renderedElement) {
//code to display google charts
}
});
下面是渲染的html。我想在第二个div中显示谷歌图表。
<div data-bind="attr: { id: id }, with: graph">
<div data-bind="attr: { id: chartID}"></div>
</div>
afterRender
永远不会被解雇,因此不会显示任何图表。
除了afterRender
之外,还有其他方法可以在呈现模板后显示图表吗?
答案 0 :(得分:1)
你似乎把事情搞混了。
renderTemplate是一种方法,您可以调用该方法直接从代码呈现模板,而不是从模板绑定中呈现它们。它具有以下参数:
您用来调用renderTemplate的参数根本没有意义。
也许你可以试试这个:
<div data-bind="attr: { id: id }, with: graph">
<div data-bind="attr: { id: chartID}, template: { name: "myGraphTemplate",
data: $data,
afterRender: thingToDoAfterRendering }"></div>
</div>
<script id="myGraphTemplate" type="text/html">
<!-- Template goes here -->
</script>
在viewmodel上显示:
vm = {
id: ko.observable(),
graph: {
chartId: ko.observable(),
thingToDoAfterRendering: function(renderedElement) {
// Code to display google charts
}
}
}
这个答案是关于你的代码和标记的结构有很多假设和猜测的。如果这不能回答您的问题,您需要填写大量遗漏信息,包括:
有关renderTemplate的更多信息,请参阅:
另外请务必查看模板绑定文档: