我正在将表单中的公司名称添加到
CurrentCursorPosition % 10
使用
$scope.master = {};
现在在另一个表单上,所有者详细信息,我只想添加到$scope.master = angular.copy(cmpy);
// This gives me result as Object {cname: "Company 2"}
。我已经尝试了$scope.master
,push
,但他们似乎无法工作。如果我再次使用concat
,它只会覆盖现有数据。
答案 0 :(得分:2)
如果您使用的是AngularJS版本> = 1.4.0,那么您可以使用extend
功能,如下所示:
angular.extend($scope.master, $scope.ownerDetails);
这会将$scope.ownerDetails
(或您获得所有者详细信息的任何地方)的所有值复制到$scope.master
。
对于小于1.4.0的Angular,您可以解决方法以注入自己的extend
方法:
// This code is basically copied from AngualrJS 1.4.0 library
function baseExtend(dst, objs, deep) {
var h = dst.$$hashKey;
for (var i = 0, ii = objs.length; i < ii; ++i) {
var obj = objs[i];
if (!angular.isObject(obj) && !angular.isFunction(obj)) {
continue;
}
var keys = Object.keys(obj);
for (var j = 0, jj = keys.length; j < jj; j++) {
var key = keys[j];
var src = obj[key];
if (deep && angular.isObject(src)) {
if (angular.isDate(src)) {
dst[key] = new Date(src.valueOf());
} else {
if (!angular.isObject(dst[key])) {
dst[key] = angular.isArray(src) ? [] : {};
}
baseExtend(dst[key], [ src ], true);
}
} else {
dst[key] = src;
}
}
}
if (h) {
dst.$$hashKey = h;
} else {
delete dst.$$hashKey;
}
return dst;
}
angular.merge = function(dst) {
var slice = [].slice;
return baseExtend(dst, slice.call(arguments, 1), true);
};
答案 1 :(得分:0)
push
和concat
用于数组,$ scope.master是一个对象。要添加另一个密钥:
$scope.master['owner_details'] = owner_details;
答案 2 :(得分:0)
其他答案很好,以编程方式设置主变量,如果这是你想要的(你可能因为你尝试推动等)
然而,如果&#34;形式&#34;你提到的是 HTML表单字段,你可以使用 ngmodel 将用户详细信息绑定到$ scope.master。赞:
<input type="text" ng-model="master.firstname" />
另一种选择。
一切顺利。