我有一个范围变量jsonData
,如下所示:
$scope.jsonData={id:'1234',abcd:{array:[{a:'data',b:'bdata',c:'cdata'},{a2:'a2data',b2:'b2data',c2:'c2data'}]},efg:{test:'testdata'}}
在我的HTML中,我有一个带有字符串
的函数calladd('jsonData.abcd.array')
在我的js文件中我想将一个JSON对象添加到array中的abcd JSON对象
$scope.add(data) {
$scope[data].push({a3:'a3data',b3:'b3data',c3:'c3data'});
}
但我无法将数据推送到数组中。
答案 0 :(得分:0)
如果你想获得身份证,你可以
var id = $scope.jsonData.id;
//id = "1234"
您可以使用相同的逻辑来添加或获取值
答案 1 :(得分:0)
调用myobject['prop1.prop2.whatever']
不起作用。
你需要的是一个递归解析器,如:
$scope.add = function(data, scope){
scope = (typeof scope === "undefined") ? $scope : scope;
var datas = data.split('.');
if(datas.length == 1){
scope[datas[0]].push({
a3: 'a3data',
b3: 'b3data',
c3: 'c3data'
});
}else{
var first = datas.splice(0,1);
$scope.add(datas.join('.'), scope[first]);
}
};