5

ここに私のdataLayer配列があります:

dataLayer = [{
  'giftBatch' : {
    'giftID': '',
    'giftAmount': 0,
    'giftCount': 0,
    'giftUpdate': {
      'giftPhase': 'Gift Empty'
    }
  },
  'txBatch': {
    'txID': '',
    'txTotal': 0,
    'txURL': window.location.href,
    'txUpdate': {
      'txPhase': 'Transaction Opened',
      'txT0': new Date(),
      'txT1': ''
      'txT2': ''
    }
  }
}];

コンソールの結果は次のとおりです。配列 [Object1]

Object1 には、必要に応じて「giftBatch」オブジェクトと「txBatch」オブジェクトが含まれています。

dataLayer 内のオブジェクトを更新するために後で起動するトリガーがあります。

たとえば、'giftAmount' を 50 に、'giftCount' を 1 に更新します。

私は次のことを試しました(「一度に1つのオブジェクト」を変更しようとして失敗したことのみを示しています)、

試行 1:

dataLayer.push({giftAmount : 50});

結果:

配列 [object1, object2]

Object1 は上記と同じです。

Object2 は、 'Gift Amount'のプロパティを持つ新しいオブジェクトです: 50 ,

試行 2:

dataLayer.push({giftBatch.giftAmount: 222});

結果: SyntaxError: 欠落: プロパティ ID の後

試行 3:

dataLayer.push({'giftBatch.giftAmount' : 50});

結果:

配列 [object1, object2]

Object1 は上記と同じです。

Object2 は、プロパティ「giftBatch.giftAmount」を持つ新しいオブジェクトです: 50

ここで何が間違っていますか?

ここの dataLayer セクションによると: https://support.google.com/tagmanager/answer/6106899?hl=en

ネストされたオブジェクトの値を編集できるはずです。

PS。これは私が今使っているもので、うまくいきます。しかし、なぜ仕事をプッシュしないのですか?

dataLayer[index].giftBatch.giftAmount = 50;

ここで、index は Object2 のインデックスです。

どんな助けでも素晴らしいでしょう。

ありがとうございました。

4

1 に答える 1