我有一个observableArray self.CustomerOrders
,我填充
self.CustomerOrders.push(new CustomerOrder(self.getOrderId(), today.toLocaleDateString() , self.selectedCustomer2(), JSON.stringify(self.cart(),null,4)));
其中
self.getOrderId()
是获取订单ID的方法,today.toLocaleDateString()
打印今天的日期self.selectedCustomer2
是订单的选定客户self.cart
是另一个observableArray,其中包含所有已订购的商品。以下是我填充self.cart
self.cart.push(new orderedItem(product.id, product.name, product.price, product.quantity()));
这是我的foreach
<tbody data-bind="foreach: CustomerOrders">
<tr>
<td data-bind="text: id"></td>
<td data-bind="text: date"></td>
<td data-bind="text: customer"></td>
<td data-bind="text: details"></td>
<td data-bind="click: $parent.selectedOrder"><a class="btn btn-primary" data-toggle="modal" data-target="#display-order">View</a>
</td>
<td data-bind="click: $parent.selectedOrder"><a class="btn btn-primary" data-toggle="modal" data-target="#edit-order">Edit</a>
</td>
<td data-bind="click: $parent.selectedOrder"><a class="btn btn-primary" data-toggle="modal" data-target="#delete-order">Delete</a>
</td>
</tr>
</tbody>
</table>
</div>
我成功将所有这些数据保存到CustomersOrders
可观察数组,然后使用foreach
在我的UI中打印它们。我的问题是self.cart
项目打印为JSON,我不想向用户显示JSON而是HTML。
如何实现? 有什么想法吗?
答案 0 :(得分:1)
好的,所以不要JSON.stringify
你的cart
。然后,假设你的Details
绑定是cart
部分应该结束的地方,并且它应该是一个数组,你可以像这样嵌套foreach
绑定:
<td>
<ul data-bind="foreach: details">
<li data-bind="text: someProperty"></li>
</ul>
</td>
其中someProperty
是您要显示的购物车的任何属性。
当然,您可以选择适合您要求的任何HTML元素。
答案 1 :(得分:0)
我的问题是self.cart项目打印为JSON
嗯,这并不奇怪。
self.CustomerOrders.push(
new CustomerOrder(
self.getOrderId(),
today.toLocaleDateString(),
self.selectedCustomer2(),
JSON.stringify(self.cart(),null,4) /* guess what that does */
)
);
只做
self.CustomerOrders.push(
new CustomerOrder(
self.getOrderId(),
today.toLocaleDateString(),
self.selectedCustomer2(),
self.cart
)
);
并在视图中使用常规的挖空绑定来显示cart
。