2017-01-30 5 views
0

Мы получаем фрагмент кода из Google, но когда я вставляю его в index.html, консоль будет иметь ошибку, и все приложение не будет работать.Интеграция AngularJS с менеджером тегов Google

После вставки кода Google Tag Manger непосредственно перед </body>, весь index.html, как это:

<!doctype html> 
<html ng-app="app" lang="en"> 

<head> 
    <meta charset="utf-8"> 
    <title ng-bind="title"></title> 
    <base href="/"> 
    <!- some scripts and link go here -> 
    //scripts and link 
</head> 

<body> 
    <div class="container main-container"> 
     <ui-view></ui-view> 
    </div> 

     <!-- Google Tag Manager --> 
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-5QMF5WC" 
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 
})(window,document,'script','dataLayer','GTM-5QMF5WC');</script> 
<!-- End Google Tag Manager --> 
</body> 
</html> 

Однако, это не работает. Консоль всегда имеет под ошибкой:

client?cd17:5 Uncaught TypeError: Cannot read property 'replace' of null 
    at Object.eval (eval at <anonymous> (app.bundle.js:167), <anonymous>:5:77) 
    at eval (eval at <anonymous> (app.bundle.js:167), <anonymous>:98:30) 
    at Object.<anonymous> (app.bundle.js:167) 
    at __webpack_require__ (app.bundle.js:20) 
    at Object.<anonymous> (app.bundle.js:47) 
    at __webpack_require__ (app.bundle.js:20) 
    at app.bundle.js:40 
    at app.bundle.js:43 
(anonymous) @ client?cd17:5 
(anonymous) @ client?cd17:96 
(anonymous) @ app.bundle.js:167 
__webpack_require__ @ app.bundle.js:20 
(anonymous) @ app.bundle.js:47 
__webpack_require__ @ app.bundle.js:20 
(anonymous) @ app.bundle.js:40 
(anonymous) @ app.bundle.js:43 
angular.min.js:6 Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.5.6/$injector/modulerr?p0=app&p1=Error%3A%20%…20Ac%20(http%3A%2F%2Flocalhost%3A8080%2Fvendor%2Fangular.min.js%3A21%3A332) 
    at angular.min.js:6 
    at angular.min.js:40 
    at q (angular.min.js:7) 
    at g (angular.min.js:39) 
    at db (angular.min.js:43) 
    at c (angular.min.js:21) 
    at Ac (angular.min.js:21) 
    at fe (angular.min.js:20) 
    at angular.min.js:315 
    at HTMLDocument.b (angular.min.js:188) 

Если удалить код менеджера тегов Google, то нет никаких проблем. Поэтому я уверен, что ошибка вызвана этим.

ОБНОВЛЕНИЕ: проблема с webpack. https://github.com/webpack/webpack-dev-server/issues/381

ответ

0

Ошибка на самом деле свидетельствует о наличии проблемы с модулем. Во всяком случае, если вы хотите использовать Google менеджер тегов с угловой я хотел бы предложить вам использовать Angulartics

var yourApp = angular.module('YourApp', ['angulartics', 'angulartics.google.analytics']) 
+0

я узнал от http://www.lunametrics.com/blog/2016/02/15/what-is-google -tag-manager /, google Analytics и менеджер тегов google могут работать отдельно. Нужно ли использовать Google Analytics? –

+0

@BenjaminLi да это возможен. но когда вы будете проходить через эту библиотеку, это упростит вам жизнь – Sajeetharan

Смежные вопросы