Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用Angular.merge()合并对象_Javascript_Angularjs_Object_Angularjs Scope - Fatal编程技术网

Javascript 无法使用Angular.merge()合并对象

Javascript 无法使用Angular.merge()合并对象,javascript,angularjs,object,angularjs-scope,Javascript,Angularjs,Object,Angularjs Scope,我正在尝试将合并对象传递给getData()函数: $scope.query = { order: 'date', limit: 15, page: 1 }; $scope.src = {txt:0}; $scope.onReorder = function (order) { var toBeExtended = angular.copy($scope.src); var ext

我正在尝试将合并对象传递给getData()函数:

     $scope.query = {
        order: 'date',
        limit: 15,
        page: 1
     };
     $scope.src = {txt:0};
     $scope.onReorder = function (order) {
       var toBeExtended = angular.copy($scope.src);
       var extendedObj = angular.merge({}, $scope.query,{where:toBeExtended},{order: order});
       getData(extendedObj)
     };
我不明白,如果我将console.log()变量指定给合并或合并本身,为什么会得到不同的结果。 换言之:

 console.log(extendedObj); shows: 
                                 Object
                                   limit: 15
                                   order: "date"
                                   page: 1
                                   where: Object
                                          __proto__: Object
                                   __proto__: Object

  console.log(angular.merge({},$scope.query,{where:toBeExtended},{order:order})); shows:                       
                                    Object
                                     limit: 15
                                     order: "date"
                                     page: 1
                                     where: Object
                                            src: 0
                                          __proto__: Object
                                     __proto__: Object

当然,我不能传递完整的对象。

当前<代码>角。合并< /代码>方法考虑第三个参数,这是合并过程。在这种情况下,为合并进程传递

{where:toBeExtended}
,忽略
{order:order}

您需要首先创建要合并的整个对象,然后将该对象传递给merge方法

var objectToBeMerge = {};
angular.extend(objectToBeMerge, {where:toBeExtended})
angular.extend(objectToBeMerge, {order: order})
var extendedObj = angular.merge({}, $scope.query, objectToBeMerge);

@Cris69你能给我提供点什么吗?那就最好了。我犯了个错误,你的建议是正确的。由于某些原因,这对我的代码不起作用。无论如何都是Thx。通过在您的案例中使用的对象复制相同的问题。。你可以得到那条线索,否则我会帮你的。。如果它真的失败了,就不要投票。谢谢;)