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