我正在开发Web GUI的一部分,该GUI显示在云中创建租户期间可用的VM集。表示此集合的对象如下所示:
function BoxTemplate(data) {
var self = this;
self.id = ko.observable(0);
self.name = ko.observable("");
self.description = ko.observable("");
if (data) {
self.id(data.Id);
self.name(data.Name);
self.description(data.Description);
}
}
在下一步中,我试图从上述对象的数组中检索ID。代码如下:
var boxTemplatesIds = ko.observableArray([]);
for (var i = 0; i < self.boxTemplatesList.length; i++) {
boxTemplatesIds.push(self.boxTemplatesList()[i].id);
}
var boxTemplatesIdsAsJson = ko.toJSON(boxTemplatesIds);
然后boxTemplatesIdsAsJson
作为请求正文中的参数传递。但是,当我打印它时,它是空的,并且null被传递给底层REST API中的相应参数。我尝试了不同的方法,但它没有。你能帮我弄清楚我的代码有什么问题吗?我将不胜感激。 :)
答案 0 :(得分:1)
如果self.boxTemplatesList
是BoxTemplate
对象的可观察数组,则id
属性为ko.observable
,您需要使用圆括号来获取它的值({ {1}}):
self.boxTemplatesList()[i].id()
或仅使用for (var i = 0; i < self.boxTemplatesList.length; i++) {
boxTemplatesIds.push(self.boxTemplatesList()[i].id());
}
:
map