使用模板绑定:
<!-- ko template: { name: templateName, data: modelName, if: modelName } -->
<!-- /ko -->
然后,在您的视图模型中添加以下 observable:templateName 和 modelName。
您的视图模型可能如下所示:
var parent = {
ChildType: ko.observable(1),
templateName: ko.observable('Partial-A'),
modelName: ko.observable(ViewModelA)
};
接下来要做的是根据 ChildType 值设置 templateName 和 modelName。
var option = parent.ChildType();
if(option == 1)
{
parent.modelName(null);
parent.templateName('Partial-A');
parent.modelName(ViewModelA);
}
在更改模板名称之前将 modelName 设置为 null 非常重要,因为 ko 将无法应用绑定。
接下来,您只需定义模板,如下所示:
<script id="Partial-A" type="text/html">
// your code goes here
</script>