им, вероятно, новичок в нокауте, и попробовал в качестве игровой площадки одностраничное приложение.нокаут, как пройти наблюдаемый через компоненты
Для каждой страницы я зарегистрировал компонент и im динамически загружал компонент с привязкой к данным. У меня есть мой второй компонент, который я хочу использовать в моем первом компоненте.
Мой HTML-код:
<!-- Menu -->
<ul class="menu" data-bind="foreach: pages">
<li data-bind="text: $data,
css: { selected: $data === $root.page() },
click: $root.goToPage"></li>
</ul>
<!-- Content -->
<div id="content" data-bind="component: { name: page() + '_content', params: { cont : page() } }">
</div>
код Javascript Мои:
function SinglePageViewModel() {
var self = this;
self.pages = ['Home','Profile','Users'];
self.page = ko.observable();
self.goToPage = function (page) {
self.page(page);
};
self.goToPage(self.pages[0]);
};
ko.components.register('Home_content', {
viewModel: function(params) {
this.headline = ko.observable(params.cont || '');
},
template:
'<h3 data-bind="text: headline"></h3><br>\
<span> Welcome <span data-bind="text: firstName"></span> <span data-bind="text: lastName"></span>!</span>'
});
ko.components.register('Profile_content', {
viewModel: function(params) {
this.headline = ko.observable(params.cont || '');
this.firstName = ko.observable("John");
this.lastName = ko.observable("Snow");
},
template:
'<h3 data-bind="text: headline"></h3><br>\
<input data-bind="value: firstName" />\
<input data-bind="value: lastName" />'
});
ko.components.register('Users_content', {
viewModel: function(params) {
this.headline = ko.observable(params.cont || '');
},
template:
'<h3 data-bind="text: headline"></h3>'
});
ko.applyBindings(new SinglePageViewModel());
У меня есть также Fiddle. Как можно показать «Welcome John Snow!» на моей домашней странице по умолчанию. Любое предложение о том, как можно изменить всю систему, также приветствуется, если оно связано с нокаутом. Как уже говорилось, я новичок в этом, поэтому я, возможно, принял совершенно неправильный путь, и я хочу узнать «правильный способ» использования ;-)