我目前有一个数组被传递到我的函数中,我想从数组中提取信息,以便我可以在页面上显示它。
这就是数组的样子:
EducationalClasses:[object, object]
first object contains:
classId: "324342",
className: "English 101"
second object contains:
classId: "231243",
className: "Reading"
当我做educationClasses [0]时,我得到第一个对象的结果。我想创建某种循环,以便在我的视图页面中有:
<!-- ko foreach: educationalClasses -->
<div data-bind="text: className></div>
<!--/ko-->
我会得到英语101和阅读显示
这就是我的viewModel:
viewModel = function(educationalClasses){
....
self.className= ko.observable(educationalClasses.className); // what i want
}
如何正确执行此操作,以便显示数组中的所有项目,而无需使用educationalClasses[0].className...educationalClasses[1].className
答案 0 :(得分:0)
从技术上讲,你不需要任何可观察到的东西。您只需要一个名为educationalClasses
的成员,即一个数组(或observableArray)。您可以将原始数据包装在一个对象中,对其进行标记,然后就可以了。
如果您想更改数组并让视图显示更新,您需要observableArray
。如果您想要显示各个数据项的更改,您也希望它们是可观察的。
rawData = [{
classId: "324342",
className: "English 101"
}, {
classId: "231243",
className: "Reading"
}];
viewModel = function(educationalClasses) {
return {
educationalClasses: educationalClasses
};
};
ko.applyBindings(viewModel(rawData));
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<!-- ko foreach: educationalClasses -->
<div data-bind="text: className"></div>
<!--/ko-->