我是“淘汰赛”的新手,所以请耐心等待。 我有一个可观察的数组,由对象组成,其中一个属性(“模板类型”)包含要使用的模板的名称。如何在迭代HTML中的可观察数组时动态分配属性值(模板类型)?
//Short version of an array object (‘containerData’ is read from MVC)
function smContainerViewModel(containerData) {
var self = this;
self.id = ko.observable(containerData.id);
self.templateType = ko.observable(containerData.containerType);
};
//viewModel
function AppViewModel(dataInput) {
var self = this;
self.koContainersArray = ko.observableArray();
for (var i = 0; i < dataInput.containersArray.length; i++) {
self.koContainersArray.push(new smContainerViewModel(dataInput.containersArray[i]));
};
self.currentTemplate = ko.computed(function () {
//Currently I can return the below static name of a template. I would like to return:
// koContainersArray()[index]. templateType;
return 'template1';
});
};
var viewModelSM = new AppViewModel(initialData);
ko.applyBindings(viewModelSM);
//HTML
<div data-bind="template:{name:currentTemplate ,foreach:koContainersArray}"></div>
答案 0 :(得分:1)
你几乎就在那里。
<!-- ko foreach: koContainersArray -->
<div data-bind="template: templateType"></div>
<!-- /ko -->
只要设置为templateType
的是template1或模板的ID,就可以使用。
这是一个示例小提琴 -