2017-05-30 72 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类,你可能不应该这样操纵对象属性/值)。