0
Ember CLIENT 0.2.1에서 Ember 1.10.1을 사용하고 있습니다. 현재 Natero을 우리의 응용 프로그램에 통합하려고하고 있는데, 초기화 도구를 사용하여 생각한 quickstart guide을 살펴 보았습니다. Chrome에서 작동하지만 다른 브라우저에서는 오류가 표시되는 것 같습니다 : _na is undefined
. 일반적인 생각은 스크립트를 동적으로 삽입하고 윈도우에서 _na
개체를 설정하기 위해 해결 될 때까지 기다리는 것입니다.Natero를 ember-cli와 통합합니다.
이 문제를 해결하기위한 더 나은 방법은 무엇입니까?
import Ember from 'ember';
/* jshint ignore:start */
import ENV from 'webapp/config/environment';
/* jshint ignore:end */
export function initialize(/* container, application */) {
/* jshint ignore:start */
let src = 'https://events.natero.com/scripts/natero_analytics.min.js';
let injectScript = function (src) {
return new Ember.RSVP.Promise(function (resolve) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.async = true;
script.src = src;
script.onload = function() {
resolve();
};
document.getElementsByTagName('head')[0].appendChild(script);
});
};
injectScript(src).then(function() {
/*
* On each page that loads, initialize the natero analytics js library.
* The userId and accountId can be set here if known at initialization time.
* Once the userId/accountId are set they are stored in a cookie for later use,
* so that they only need to be set once per session.
*/
// http://apidocs.natero.com/quickstarte.html
// https://login.natero.com/itcenter.html
let authKey = ENV.natero.authKey,
apiKey = ENV.natero.apiKey,
settings = {
trackUnload: true,
debugUrl: "https://test.natero.com/v1/" + authKey + "/" + apiKey,
disableEventSend: false, // disable the sending of events
debug: false // console debug prints
};
if (['production', 'prd'].indexOf(ENV.environment) > -1) {
delete settings['debugUrl'];
}
window._na = new na(
apiKey,
authKey,
settings
);
});
/* jshint ignore:end */
Ember.Router.reopen({
notifyNatero: function() {
// https://github.com/emberjs/ember.js/issues/10180
let currentRoute = Webapp.__container__.lookup('controller:application').get('currentRouteName');
_na.setModuleId(currentRoute);
}.on('didTransition')
});
}
export default {
name: 'natero',
initialize: initialize
};
왜 그렇게하지
beforeModel
후크에게 응용 프로그램에서 수행 할 수 있습니다 당신이https://test.natero.com/v1/
스크립트를로드에 index.html을하고 현재의 성공 콜백 함수의 예를 실행.을 포함 할 수있다 index.html에 스크립트를 포함 시키시겠습니까? –