ここに私の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 のインデックスです。
どんな助けでも素晴らしいでしょう。
ありがとうございました。