2015-09-18 3 views
0

Я хотел бы интегрировать виджет Tawk.to в мое приложение angularjs.Доступ к html-виджету из контроллера angularjs

<!--Start of Tawk.to Script--> 
    <script type="text/javascript"> 
     var $_Tawk_API={}, 
      $_Tawk_LoadStart=new Date(); 

     (function(){ 
      var s1=document.createElement("script"), 
       s0=document.getElementsByTagName("script")[0]; 

      s1.async=true; 
      s1.src='https://embed.tawk.to/552e2462fd29683e1f71e7c8/default'; 
      s1.charset='UTF-8'; 
      s1.setAttribute('crossorigin','*'); 
      s0.parentNode.insertBefore(s1,s0); 
     })(); 
    </script> 
<!--End of Tawk.to Script--> 

Этот виджет загружается асинхронно. Мне просто нужно вызвать метод Tawk_API.toggle() Просмотр объекта $_Tawk_API, возможно ли решение? Я не знаю, как я могу ссылаться на объект $_Tawk_API с моего углового контроллера.

Любые советы?

Заранее спасибо.

+0

Почему Don 'T вы просто добавить код в контроллер? –

+0

Я мог бы использовать событие Tawk_API.onLoad = function() { \t // разместите здесь свой код }; , но ссылка Tawk_API всегда не определена. Это потому, что загружается async. –

+0

Alexandr, проблема в том, что я не знаю, когда ссылка Tawk_API готова к вызову из моего кода. –

ответ

1

Вот мои решения:

AngularJS решение:

// inside the controller 
angular.element($window).bind('load', function() { 
    // here not only the page is loaded, 
    // but also all asynchronous requests are completed 
    Tawk_API.toggle(); // I can call any api methods 
} 

JQuery решение:

$(window).on('load', function(){ 
    // here not only the page is loaded, 
    // but also all asynchronous requests are completed 
    Tawk_API.toggle(); // I can call any api methods; 
}); 
+0

Я не понимаю, где Tawk_API исходит из углового? –