2014-04-07 31 views
-1

從代碼看起來像對象不支持該屬性。indexOf在IE8中拋出錯誤,我正在使用knockoutjs

function _isLabelForDisplayablePrice(label, scope) { 
    var g = self.data.general, 
    checkedPriceVals = g[scope + 'VehicleConfig'].displayablePrices(), 
    priceObjects = g[scope + 'VehicleConfig'].featuredPrices(); 

    for (var i = 0; i < priceObjects.length; i++) { 
     // Find the parent object of the label field 
     if(label.name() == priceObjects[i].fields.label.name()) { 
      // Return true if displayable is checked 
      return checkedPriceVals.indexOf(priceObjects[i].fields.displayable.value()) >= 0; 
     } 
    } 

    // should never reach here, but just in case 
    return false; 
} 

回答

0

試試這個

return checkedPriceVals.toString() 
.indexOf(priceObjects[i].fields.displayable.value())>=0; 

它會奏效。

0

是使用$ .inArray代替的indexOf,或者你可以定義方法:

if (!Array.prototype.indexOf) { 
Array.prototype.indexOf = function (obj, start) { 
    for (var i = (start || 0), j = this.length; i < j; i++) { 
     if (this[i] === obj) { return i; } 
    } 
    return -1; 
} 
}