陷入这种情况,我尝试了不同的解决方案,但没有得到任何解决方法我想要的是:
$scope.list={"A":[],"B":[],"C":[],"D":[]}
这种类型的数组对象但它应该是动态的,例如当我点击按钮时会调用这个函数:
AppendToList(data)
{
$scope.list.push("E":data)//error
}
我希望这个E是动态的,当我点击下一个对象应该自动创建,如果我下次点击它应该成为{"A":[],"B":[],"C":[],"D":[],"E":[data]}
答案 0 :(得分:2)
你应该这样试试。
AppendToList(data)
{
$scope.list["E"]=data;
}
答案 1 :(得分:1)
您的$scope.list
实际上是一个对象。要添加媒体资源,您需要使用list.A
或list["A"]
var list = {};
list["A"] = [1,2,3];
console.log(JSON.stringify(list));

答案 2 :(得分:0)
试试这个
function nextChar(c) {
var i = (parseInt(c, 36) + 1 ) % 36;
return (!i * 10 + i).toString(36);
}
AppendToList(data)
{
$scope.list[nextChar($scope.list[Object.keys($scope.list)[Object.keys($scope.list).length - 1]])]=data;
}
测试它并且它的工作正常你只需添加条件id列表是空的
答案 3 :(得分:0)
尝试这种方式将新对象添加为动态元素
var key = "E";
var value= { Result: 'Very Success' }
var list = { "A": [], "B": [], "C": [], "D": [] };
var splited = JSON.stringify(list).split('}');
list = JSON.parse(splited[0] + ',"' + key +' ":'+ '[' + JSON.stringify(value)+ '] }')
console.log(list);