gpt4 book ai didi

javascript - 如何使用 Knockout 连接 Observable 数组中的所有项目?

转载 作者:行者123 更新时间:2023-11-30 16:17:30 26 4
gpt4 key购买 nike

我有以下对象:

var Transaction = function (data) {
this.ID = ko.observable(data.transaction.ID);
this.number = ko.observable(data.transaction.number);
this.userID = ko.observable(data.transaction.userID);
this.password = ko.observable(data.transaction.password);

this.Properties = ko.observableArray(data.Property);
}

Properties 可观察数组如下所示(在 JSON 中):

[{"address1":"111 Broadway","city":"Brooklyn","state":"NY","zip":null},
{"address1":"222 Broadway","city":"Brooklyn","state":"NY","zip":null}]

在我的 HTML 中我有这样的东西:

<span>PROPERTY</span>
<span data-bind="foreach: Properties">
<span data-bind="text: address1"></span>
<span data-bind="text: city"></span>
span data-bind="text: state"></span>
<span data-bind="text: zip"></span>
</span>

在浏览器中它看起来像:

PROPERTY 
111 Broadway
Brooklyn
NY
222 Broadway
Brooklyn
NY

我希望它看起来像:

111 Broadway, Brooklyn, NY 
222 Broadway, Brooklyn, NY

有什么建议吗?

最佳答案

您可以在 Transaction 原型(prototype)中创建一个计算属性作为 Properties ListView ,这将简化与其关联的 HTML 标记。

this.propertyView = ko.pureComputed(function() {
return this.Properties().map(function(prop) {
var singleProp = '';
for (var p in prop)
if (prop[p])
singleProp += prop[p] + ', ';
return singleProp.slice(0,-2);
});
}, this);
<span>PROPERTIES</span>
<!-- ko foreach: propertyView -->
<p data-bind="text: $data"></p>
<!-- /ko -->

关于javascript - 如何使用 Knockout 连接 Observable 数组中的所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35269742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com