如何在EmberJS应用程序中使用Jitsi Meet
在我的Ember应用程序中,我使用了我安装的ember-inject-script:
npm install --save-dev ember-inject-script
我的页面的controller.js文件如下所示:
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); } });
模板是这样的:
<h2>Jitsi Meet</h2> <div id="meet"></div> {{outlet}}
但是我得到一个控制台错误:
处理路由时出错: projects.index JitsiMeetExternalAPI未定义ReferenceError:JitsiMeetExternalAPI未定义
-
injectScript
在asynchronous,所以你不能使用JitsiMeetExternalAPI
非常接下来的语句。 你需要使用。 -
另一个问题是,您正在访问控制器init方法中的DOM元素,该元素将不可用。 通常控制器不是DOM感知的。 为此,我会鼓励你编写Component并使用
didInsertElement
钩子
另一种在所需时间加载js的替代方法是在路由模式挂接之前,您可以使用Ember。$。getJSON(url)。
beforeModel(){ return Ember.$.getJSON(url); }
- Ember + Sails + Websockets用户authentication
- 这些Node.js和JavaScript框架是什么?它们是做什么的?
- 如何用r.js优化烬数据
- Ember模型和SQL – 在服务器上或通过Ember关系连接表?
- Ember Cli没有用西兰花标志编译器编译
- Ember.js,Express.js和Node.js的资产pipe道?
- 智威汤逊前端和后端令牌战略
- node.js中的计算属性
- Win 8.1,Vagrant,Chef,Ubuntu,Ember-cli,ember new“npm ERR! tar.unpack untar error /home/vagrant/.npm/“