3
我想弄清楚为什么这个嵌套模板不显示任何东西。我有2个班富/酒吧,视图模型有富可观察到的数组,和Foo有酒吧如何knockoutjs嵌套模板
集合目前所有我看到的是富项目
即
- someitem
,而不是
someitem
- 子项目
列表项
<ul data-bind="template: {name: 'TopTemplate' , foreach: foos}"></ul>
<script type="text/html" id="TopTemplate">
<li data-bind='text: Name'>
<ul data-bind=" template: {name: 'NestedTemplate' , foreach: bars} " style="list-style-type:circle;margin-left:15px">
</ul>
</li>
</script>
<script type="text/html" id="NestedTemplate">
<li data-bind='text: Name'>
</li>
</script>
var Foo = function() {
var self = this;
self.Name = ko.observable('someitem');
self.bars = ko.observableArray([new Bar()]);
self.HasChildren = ko.observable(false);
self.addBar = function() {
self.bars.push(new Bar());
};
self.removeBar = function (param) {
self.bars.remove(param);
};
self.bars.push(new Bar());
}
var Bar = function() {
var self = this;
self.Name = ko.observable('subitem');
}
var ViewModel = function() {
var self = this;
self.foos = ko.observableArray([new Foo()]);
self.addFoo = function() {
self.foos.push(new Foo());
};
self.removeFoo = function (param) {
self.foos.remove(param);
};
}
$.ajax({
url: '@Url.Action("AddFoos")',
type: 'GET',
async: false,
contentType: 'application/json',
success: function (result) {
ko.applyBindings(new ViewModel(result));
}
});
提前感谢!
非常感谢。 – MikeW 2012-08-02 01:40:38
啊!浪费了一个小时之后,找到了你的答案。谢谢:)来自Knockout源的 – solefald 2012-10-05 04:24:30
:'text'绑定使用'ko.util.setTextContent()',它有这个注释'我们需要在那里有一个孩子:一个文本节点。如果没有孩子,不止一个,或者如果它不是文本节点,我们将清除所有内容并创建一个文本节点。“ – 2014-09-29 06:58:01