Я пытаюсь использовать компоненты нокаута, и одна вещь, которую я пытаюсь использовать это вложенные компоненты, как это:Понимание того, как вложенные компоненты связывания работ по KnockoutJS
<parent-component params="parentText: parentText">
<child-component params="childText: childText"></child-component>
</parent-component>
parentText и childText являются оба члена тот же объект модели представления, но когда я запустил это, я получаю следующую ошибку:
Uncaught ReferenceError: не удалось обработать привязку "template: function() {return {nodes: $ componentTemplateNodes}}" Сообщение: childText не определен
Это пример, который я пытаюсь запустить:
var ParentComponent = function(params) {
var self = this;
self.parentText = params.parentText;
};
ko.components.register('parent-component', {
viewModel: ParentComponent,
template: '<div><p><strong data-bind="text: parentText"></strong></p><!-- ko template: { nodes: $componentTemplateNodes } --><!-- /ko --></div>'
})
var ChildComponent = function(params) {
var self = this;
self.childText = params.text2;
};
ko.components.register('child-component', {
viewModel: ChildComponent,
template: '<p data-bind="text: childText"></p>'
})
var ViewModel = function() {
var self = this;
self.title = 'KnockoutJS component test';
self.parentText = 'This is the text1';
self.childText = 'This is the text2';
};
ko.applyBindings(new ViewModel(), document.getElementById('content'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div id="content">
<h1 data-bind="text: title"></h1>
<parent-component params="parentText: parentText">
<child-component params="childText: childText"></child-component>
</parent-component>
</div>
Может кто-нибудь, пожалуйста, объясните мне, что я делаю неправильно?
Thanks,
Это было. Я должен использовать $ root. благодаря – vintem