连接angularjs中的两个范围模型

Concatenate two scope models in angularjs

本文关键字:两个 范围 模型 angularjs 连接      更新时间:2024-01-02

你好,我正在尝试连接两个由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'
       }

您似乎想要从这两个模型中创建一个新对象。

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

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