gpt4 book ai didi

angular - Datalayer.push 在 Angular 6 中使用 Typescript

转载 作者:太空狗 更新时间:2023-10-29 19:32:20 26 4
gpt4 key购买 nike

当我点击按钮时,我应该将信息发送到数据层,但我不知道该怎么做,因为我使用的是 Angular 6,所以我需要使用 Typescript 和 window.dataLayer.push 不工作并且给我这个错误

enter image description here

表格

<form>
<div class="radio">
<input value="Yes" id="radio-1" [(ngModel)]="answer" name="radio" type="radio">
<label class="radio-label rob-l" for="radio-1">Yes</label>
</div>
<div class="radio">
<input value="No" id="radio-2" [(ngModel)]="answer" name="radio" type="radio">
<label class="radio-label rob-l" for="radio-2">No</label>
</div>
</div>
<div class="btn">
<button (click)="Next()" type="submit">Next question</button>
</div>
</form>

我想收到这样的东西

Next(){
if ((this.path == 1) && (this.answer === "Yes" || this.answer === "No"))
{
// window.dataLayer = window.dataLayer || [];
// window.dataLayer.push({
// 'event': 'answer',
// 'answer': this.answer
// });
this.path++;
this.answer = "";
}
}

用这段代码解决的问题:

window['dataLayer'] = window['dataLayer'] || [];
window['dataLayer'].push({
'event': 'Answer',
'failedText': this.answer
});
ngOnInit() {
window['dataLayer'] = window['dataLayer'] || {};
}

最佳答案

您可以在组件/服务等之上使用 dataLayer 属性声明全局 Window 接口(interface),如下所示:

// Declare gTM dataLayer array.
declare global {
interface Window { dataLayer: any[]; }
}

然后只需在您的组件代码中使用该属性即可,不会出现任何错误。

关于angular - Datalayer.push 在 Angular 6 中使用 Typescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52721914/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com