我在建立電子商務網站中有一個「迷你購物車」。對於「迷你購物車」,我使用foreach將項目添加到表格中。knotckout js foreach在IE 7和8中自動添加行
「迷你購物車」是一個下拉菜單,它是從剃刀文件中渲染的。當我關閉「迷你購物車」並再次打開時,它會自動追加所有行。所以每次我關閉「小推車」並再次打開它。所有的行都會被追加一次。
當購物車被打開時,運行該代碼。
showCart = function() {
WebService.PostJson("/services/CartService.svc/GetCart", {},
function (cartDto) {
updateCart(cartDto);
postman.deliver('cartShown', 1);
},
function() {
});
};
表看起來像這樣。
<table width="100%" >
<thead data-bind="foreach: Items, stripe: Items, evenClass: 'even', oddClass: 'odd'">
<tr>
<td data-bind="text: ArticleNo">
</td>
<td data-bind="text: Name" style="width:390px;">
</td>
<td>
<input type="text" data-bind="value: Quantity" class="quantity"/>
</td>
<td class="cart-price-column">
<span class="cartRowSubTotal" style="display: none;" data-bind="text: SubTotal"></span>
</td>
<td>
<a href="#" class="erase" data-bind="click: remove">Ta bort</a>
</td>
</tr>
</thead>
</table>
updateCart做了Items.splice(0);所以它應該每次都重新加載它自己。但它似乎並沒有工作我的Internet Explorer 7和8.
是否有反正「清除」表每次?或者,視景模型可以自行解決這個問題嗎?
謝謝。
UPDATE:
看來,拼接方法沒有空出於某種原因陣列。當改爲cart.Items([])它開始工作。
也許你可以在jsFiddle中重現這個? –
剛剛找到答案。似乎cart.Items.splice(0)出於某種原因沒有清空數組。必須改變它cart.Items([]),然後它的工作。很奇怪爲什麼拼接不起作用,我認爲。 – jinxen