在angularjs中连接两个范围模型

时间:2013-12-01 20:57:24

标签: javascript json angularjs extend concat

您好我试图连接两个受html表单值绑定的模型。我的最终目标是为POST请求创建嵌套的JSON对象。我曾尝试使用如下所示的DeepExtend方法,但它仅适用于非$ scope对象。我真的想知道为什么会这样。

这是我对这个问题的尝试

as.factory('model1', [
    function () {
        return {
            Header1: {
                code: '',
                name: '',
                type: ''

            }
        };

    }
]);


as.factory('model2', [
    function () {
        return {
            Header2: {
                code2: '',
                name2: '',
                country: ''
            }
        };

    }
]);

as.controller('cntrl', function ($scope, $http, i18n, $rootScope, model1, model2) {

    function deepObjectExtend(target, source) {
        for (var prop in source)
            if (prop in target)
                deepObjectExtend(target[prop], source[prop]);
            else
                target[prop] = source[prop];
        return target;
    }

    var result = deepObjectExtend($scope.mdoel1, $scope.model2);
    $rootScope.resultString = angular.toJson(result);
    console.log($rootScope.resultString);
});

我的最终结果应该是:

Header1: {
        code:'123',
        name: '321',
        type:'123'               
       },
Header2: {
        code2:'123' ,
        name2: '123',
        country: '123'
       }

1 个答案:

答案 0 :(得分:1)

好像你想要从两个模型中创建一个新对象。

如果是这样,你可以这样做:

var result={}
 angular.extend(result, $scope.model1, $scope.model2);