我正在通过网页标题中名为analytics.js
的文件注入Google Analytics代码,如下所示:
<script src="/assets/js/analytics.js"></script>
这很好用。如果我转到网页,我可以从我的控制台访问全局功能ga
。
然而,在我的服务中,看起来像这样:
import {Injectable} from "@angular/core";
import {Router, NavigationEnd} from "@angular/router";
var ga:any;
@Injectable()
export class GoogleAnalyticsService{
constructor(){
console.log(ga);
}
test(){
console.log(typeof ga);
}
}
在这两种情况下,控制台输出都是未定义的。我将我的Angular2注入html代码的底部,因此它作为最后一个脚本加载。
发生了什么事?
答案 0 :(得分:4)
替换:
var ga:any;
与
declare var ga: any;
第一个创建新变量,而最后一个声明类型