2017-07-13 19 views
5

Trong ứng dụng Ember của tôi, tôi đang sử dụng ember-bơm-kịch bản mà tôi cài đặt:Làm thế nào để sử dụng Jitsi Gặp gỡ trong một ứng dụng EmberJS

npm install --save-dev ember-inject-script 

File controller.js cho trang của tôi trông như thế này:

import Ember from 'ember'; 
import injectScript from 'ember-inject-script'; 

export default Ember.Controller.extend({ 
    init: function() { 
    this._super(); 
    var url = "https://meet.jit.si/external_api.js"; 
    injectScript(url); 
    var domain = "meet.jit.si"; 
    var room = "JitsiMeetAPIExample"; 
    var width = 700; 
    var height = 700; 
    var htmlElement = document.querySelector('#meet'); 
    var api = new JitsiMeetExternalAPI(domain, room, width, height, 
       htmlElement); 
    } 
}); 

Template là thế này:

<h2>Jitsi Meet</h2> 
<div id="meet"></div> 
{{outlet}} 

Tuy nhiên, tôi nhận được một lỗi giao diện điều khiển:

Error while processing route: projects.index JitsiMeetExternalAPI is not defined ReferenceError: JitsiMeetExternalAPI is not defined

+0

Lưu ý rằng tôi đang sử dụng API Meet của Jitsi: https://github.com/jitsi/jitsi-meet/blob/master/doc/api.md – mrlindsey

Trả lời

4
  • injectScript trong không đồng bộ nên bạn không thể sử dụng JitsiMeetExternalAPI tuyên bố rất tới. Bạn cần sử dụng then.

  • Một vấn đề khác là, bạn đang truy cập phần tử DOM trong phương pháp init của bộ điều khiển, sẽ không có sẵn. bộ điều khiển chung không phải là nhận thức DOM. cho điều này tôi sẽ khuyến khích bạn viết phần và sử dụng didInsertElement móc

Thêm một cách tiếp cận khác để tải js lúc cần thiết, là ở các tuyến đường beforeModel móc, bạn chỉ có thể sử dụng Ember $.. getJSON (url) .

beforeModel(){ 
return Ember.$.getJSON(url); 
} 
+1

Cảm ơn bạn! Đề xuất của bạn hoạt động hoàn hảo. – mrlindsey

Các vấn đề liên quan