【发布时间】:2018-10-09 13:10:56
【问题描述】:
当我点击按钮时,我应该发送到数据层信息,但我不知道该怎么做,因为我使用的是 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'] || {};
}
【问题讨论】:
-
究竟是什么不起作用?你得到一个编译错误?运行时错误?数组中没有显示任何内容吗?
-
改变了我的问题
-
@SiddAjmera 有正确的想法。本质上,您应该将属性“dataLayer”定义为窗口对象的一部分。或者将窗口对象强制转换为“any”以消除错误。
标签: angular typescript data-layers