我得到了一些非常难看的代码,我需要重构&我不确定解决问题的最佳方法。对我来说,它的工作原理我应该&每当我尝试改变它时,它似乎都会引入一个错误。
任何想法都会很棒。
if (product) {
if (product.available) {
$addToCart.removeClass('disabled').prop('disabled', false);
if (lang_key_change) {
$addToCartText.html(lang_key_change);
} else {
$addToCartText.html({{ 'add_to_cart'}});
}
} else {
$addToCart.addClass('disabled').prop('disabled', true);
$addToCartText.html({{ 'sold_out'}});
}
} else {
$addToCart.addClass('disabled').prop('disabled', true);
$addToCartText.html({{ 'unavailable'}});
}
答案 0 :(得分:0)
使用以下重构代码
$addToCart.addClass('disabled').prop('disabled', true);
if (product && product.available) {
$addToCart.removeClass('disabled').prop('disabled', false);
$addToCartText.html(lang_key_change? lang_key_change: {{ 'add_to_cart'}});
}
else if (product && product.available === false) {
$addToCartText.html({{ 'sold_out'}});
}
else {
$addToCartText.html({{ 'unavailable'}});
}
答案 1 :(得分:0)
您可能不需要任何if
声明,请点击此处
$addToCart.toggleClass('disabled', !product || ( product && !product.available ) );
$addToCart.prop('disabled', !product || ( product && !product.available ) );
$addToCartText.html( !product ? {{ 'unavailable'}} : ( !product.available ? {{ 'sold_out'}} : ( lang_key_change || {{ 'add_to_cart'}} ) ) );