Я тестирую функции компонентов Knockout и до сих пор успешно использовал их в нескольких сценариях. Теперь я пришел к сценарию, который я не могу найти, как это сделать. Я хочу добавить компонент внутри другого компонента на основе некоторого ключевого слова. Вот фрагмент:
Шаблон для родительского компонента
<div id="container">
</div>
Модель просмотра для родительского компонента
define(["jquery", "knockout", "ko-postbox", "text!./parent.html"], function($, ko, kopost, template) {
function displayChildContent(value) {
switch (value.toLowerCase()) {
case "child":
//
// How to load child component?
//
break;
default:
break;
}
}
function ParentViewModel() {
ko.postbox.subscribe("child-click", function(newValue) {
displayChildContent(newValue);
}, this);
}
return { viewModel: ParentViewModel, template: template };
});
Шаблон для дочернего компонента
<div>
<h1>Child</h1>
</div>
Модель просмотра для дочернего компонента
define(["text!./child.html"], function(template) {
function ChildViewModel() {
}
return { viewModel: ChildViewModel, template: template };
});
Щелчок срабатывает, но я не знаю, как добавить дочерний шаблон в родительский шаблон. Кроме того, я планирую передать некоторые данные от родителя к дочернему элементу, используя привязку params к пользовательскому элементу. После того, как я добавлю дочерний шаблон к родительскому, сможет ли он это сделать?