Javascript 无法使用Angular.merge()合并对象
我正在尝试将合并对象传递给getData()函数: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
$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。通过在您的案例中使用的对象复制相同的问题。。你可以得到那条线索,否则我会帮你的。。如果它真的失败了,就不要投票。谢谢;)