【问题标题】:angularjs add item to object arrayangularjs将项目添加到对象数组
【发布时间】:2015-09-22 04:29:32
【问题描述】:

我有一组看起来像这样的数组和对象

`

var PaymentContent = "Payments":
     [{
        "Details": {
                    "PaymentType": "CreditCard",
                    "Amount": $scope.total,
                    "CCNAME": $scope.Form.CreditCard.FullName,
                      }
      }]
Payments: Array[1]
0:Object
 Details: Object
 Amount: 5.99
 CCNAME: null
 PaymentType: "CreditCard"`

现在,我如何使用 angularjs 更新该组对象和数组? 所需的输出:

Payments: Array[1] 0:Object Details: Object Amount: 5.99 CCNAME: null PaymentType: "CreditCard" LastPayment: "04/11/2011"

注意 lastpayment 字段。

这是我的代码

var paymentDetails = {LastPayment : '04/11/2011', LastSignOn : '04/11/2011'} fields = angular.extend({}, PaymentContent , paymentDetails);

谢谢!

【问题讨论】:

  • 你应该展示你完整的对象交互代码。顺便说一句,向现有对象添加属性就像分配一个像 a.LastPayment = "sample";
  • 您可以通过Payments[0].LastPayment = '04/11/2011'轻松将 LastPayment 添加到支付数组中
  • @Alex 你在说的东西是不可复制的..你能不能在这里复制它jsfiddle.net/78y9T/73

标签: arrays angularjs object


【解决方案1】:

您正在将一个空对象设置为目标。这个新对象将接收其他 2 个对象的属性和值...而不更改其他 2 个源对象

如果您希望数组对象接收更新,请删除第一个参数(空对象)

angular.extend( fields.Payments[0].Details, paymentDetails);

这将使用paymentDetails 中的所有属性和值更新fields.Payments[0].Details

Demo Fiddle

【讨论】:

    【解决方案2】:

    你可以直接写下面的代码:

    Payments[0].LastPayment = "04/11/2011";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-08
      • 1970-01-01
      • 2017-03-04
      • 2014-08-05
      • 1970-01-01
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      相关资源
      最近更新 更多