AngularJS动态范围变量

时间:2014-10-06 17:32:27

标签: json angularjs angularjs-scope

我有一个范围变量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'});
}

但我无法将数据推送到数组中。

2 个答案:

答案 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]);
    }
};

And the fiddle