基本上,當我運行下面的代碼,車和產品不承認,我不知道爲什麼那是。
下面的代碼:
$.when(
$.getJSON(_config.shopifyAjaxCartURL),
$.getJSON(_config.shopifyAjaxProductURL)
).then(function(cart,product){
alert ('1 - TOTAL ITEM COUNT: ' + cart.item_count);
for (var i = 0; i <= cart.item_count; i++) {
alert ('2 - LOOPING');
if (cart.items[i].sku == product.variants[0].sku) {
productQuantity = cart.items[i].quantity;
alert ('3 - FOUND IT');
return false;
}
}
alert ('NUMBER 4');
});
下面是結果:
1:提示 「1 - 項目總COUNT:未定義」
2:不會進入循環。
3:提示 「NUMBER 4」
-
在另一方面,當我刪除這兩個參數,但是$。當和功能之一,這一切都完美。例如,這會工作:
$.when($.getJSON(_config.shopifyAjaxCartURL)).then(function(cart){ .....
輸出將是:
1:提示 「1 - TOTAL項目計數:」
2:提示「2 - LOOPING」。
3:提示「NUMBER 4」(因爲它現在找不到
product.variants[0].sku
)。
-
爲什麼這兩個參數是相互衝突的任何想法?任何幫助將不勝感激!
編輯:
更新到我的進步:我徑自刪除第二個參數,所以,我只能讓一個JSON請求,並只擁有cart
參數。由於我使用的是Shopify腳本(使用Liquid),我繼續嘗試使用Liquid對象來獲取產品SKU,而不是從產品的JSON中獲取。令我吃驚的是,它起作用了,只要我把Liquid Object放在引號中。我現在看起來是這樣的:
$.when($.getJSON(_config.shopifyAjaxCartURL)).done(function(cart){
alert ('1 - TOTAL ITEM COUNT: ' + cart.item_count);
for (var i = 0; i <= cart.item_count; i++) {
alert ('2 - LOOPING');
if (cart.items[i].sku == "{{product.variants[0].sku}}") {
productQuantity = cart.items[i].quantity;
alert ('3 - FOUND IT');
}
}
alert ('NUMBER 4');
然而,雖然它通過循環完美現在,它完全跳過其餘代碼。的輸出是這樣的:
1:提示 「1 - TOTAL項目計數:」
2:提示 「2 - 循環」。
3:提示「3-FOUND IT!」
...... 後「{{product.variants它從來沒有那張NUMBER 4我懷疑這是因爲引號註釋掉行的其餘部分,[0] .sku}}「;似乎它並不完全將「{{...}}」作爲引號之間的內容進行計數。
你知道這可能是爲什麼嗎?
您是否嘗試獨立運行每個參數,或者只是第一個參數? – BobRodes
感謝您的回覆,我獨自嘗試了第二個,如果它本身就很好。 – MigsO