2017-05-30 58 views
0

所以即時編輯一些代碼,我想向數組添加另一個變量。下面的代碼工作完美:在angularJS中向數組添加另一個變量

submit.addAttributeValue = function() { 
    var aValue = submit.status.newAttributeValue; 
    var aType = submit.status.selectedAttributeType; 
    console.log('adding value', aValue, aType) 
    if(aValue && aType) { 
     submit.ProductMeta['attributes'][aType][aValue] = true; 
    }; 
}; 

我那麼變量aPrice添加到函數:

submit.addAttributeValue = function() { 
    var aValue = submit.status.newAttributeValue; 
    var aType = submit.status.selectedAttributeType; 
    var aPrice = submit.status.newAttributePrice; 
    console.log('adding value', aValue, aType, aPrice) 
    if(aValue && aType) { 
     submit.ProductMeta['attributes'][aType][aValue][aPrice] = true; 
    }; 
}; 

我得到的錯誤:

Error: submit.ProductMeta.attributes[aType][aValue] is undefined [email protected]://dubdelivery.com/js/controllers-submit.js:369:13

ProductMeta被定義爲:submit.ProductMeta = {};

對ho的任何建議我應該接近這個嗎?

謝謝!

回答

2

你的數組是空的,所以你不能早於第一

設置第二級別字段如果您有

var obj = {}; 

你必須設置

obj.firstItem 

obj.firstItem.secondItem 

H ere是example

+0

非常感謝您的解釋。 – obsi

0

查看調試器或控制檯日誌「aType」,「aValue」和「aPrice」。我打賭「aValue」是未定義的。

如果您要這樣操縱對象屬性,您必須確保包含屬性名稱的變量實際上具有值。 (順便說一句,特別是現在使用ES6類,你可能不應該這樣操縱對象屬性/值)。