所以,我是Require.js的新手,我通过使用Require.js方法加载各种其他库来学习这个库。
我已成功加载Knockout.js对象,Chart.js对象以及自定义Require.js定义的对象。
但我似乎无法使用Require.js加载jwplayer。这是我收到的错误方法: 未捕获的TypeError:无法调用方法' jwplayer'未定义的
这是我的示例代码(Knockout,Chart对象都已成功加载)
require(['jwplayer/jwplayer', 'libs/Chart', 'libs/knockout-2.1.0', 'appViewModel','helper/util'], function(jwplayer, chart, ko, appViewModel, util) {
//LOADING FROM jwplayer.js
jwplayer("player").setup({
width: '320',
height: '40',
sources: [{
file: "rtmp://127.0.0.1:1935/vod/mp3:sample_1.mp3"
},{
file: "http://127.0.0.1:1935/vod/sample_1.mp3/playlist.m3u8"
}]
});
//LOADING FROM Chart.js
var barChartData = {
labels : ["January","February","March","April","May","June","July"],
datasets : [
{
fillColor : "rgba(220,220,220,0.5)",
strokeColor : "rgba(220,220,220,1)",
data : [65,59,90,81,56,55,40]
},
{
fillColor : "rgba(151,187,205,0.5)",
strokeColor : "rgba(151,187,205,1)",
data : [28,48,40,19,96,27,100]
}
]
};
var myLine = new Chart(document.getElementById("canvas").getContext("2d")).Bar(barChartData);
//LOADING FROM knockout-2.1.0.js
ko.applyBindings(new appViewModel());
//LOADING FROM A CUSTOM DEFINED OBJECT
util.greets();
});
那么如何使用Require.js加载jwplayer.js?
答案 0 :(得分:8)
jwplayer.js没有为require.js定义模块,因此您将不得不使用shim config,如下所示:
require.config({
shim: {
'jwplayer/jwplayer': {
exports: 'jwplayer'
}
}
});
您可以在requirejs api文档中查看有关如何使用它的更多信息。
编辑:代码示例中的拼写错误。
编辑2:应该注意的是,如果jwplayer()找不到你传递的播放器,它将返回null,所以即使它被正确加载,它仍然会抛出该错误。如果您在包含配置后仍然收到错误,请尝试添加类似
的内容console.log(jwplayer.api);
在require回调中,检查你的控制台,看看是否有任何东西。