Javascript 嵌套模板
我有以下代码:Javascript 嵌套模板,javascript,templates,knockout.js,multidimensional-array,knockout-templating,Javascript,Templates,Knockout.js,Multidimensional Array,Knockout Templating,我有以下代码: function Session(name, index) { this.Messages = []; this.Name = name; this.Index = index; } var vm = {}; vm.Sessions = ko.observableArray([new Session("Foo", 0), new Session("Bar", 1)]); ko.applyBindings(); vm.Sessions()[0].Mes
function Session(name, index) {
this.Messages = [];
this.Name = name;
this.Index = index;
}
var vm = {};
vm.Sessions = ko.observableArray([new Session("Foo", 0), new Session("Bar", 1)]);
ko.applyBindings();
vm.Sessions()[0].Messages.push("Hello foo");
根据这一观点:
${$data.Name}
${$data}
如您所见,有一个包含数组的对象。所以我制作了会话的可观察数组,它变得可观察,包括内部属性。我想在这里显示嵌套的“中继器”
昨天我不知何故成功地完成了这个脚本。在不显示属性名称的情况下,有趣的是什么,例如,会话[${$data.Index}]。消息
。不幸的是,我删除了那个测试脚本
现在我尝试重新创建,但它不起作用
问题是我不想让它在没有显示相关属性的情况下工作。我只想让工作成为嵌套模板。这似乎更接近您想要实现的目标:
${name}
{{each(prop,val)$data}
{{如果$.isArray(val)}
${prop}
{{each(index,arrayVal)val}
{{each(i,mVal)arrayVal}
-
${i}${mVal}
{{/每个}}
{{/每个}}
{{else}
- ${prop}:${val}
{{/if}
{{/每个}}
和代码:
var viewModel = {
Sessions : ko.observableArray([
{name:"foo",index: 0, messages:[{body:"Hello foo 1"},{body:"Hello foo 2"}]},
{name:"bar",index: 1, messages:[{body:"Hello foo 3"},{body:"Hello foo 4"}]}
])
};
// ko magic...
ko.applyBindings(viewModel);
另请参见对此表示抱歉。这只是从编辑器复制粘贴时的不准确。所有ID都已正确放置。