2013-03-30 16 views
6

Tak więc, jestem nowy w Require.js i uczyłem się tej biblioteki, ładując różne inne biblioteki przy użyciu metod Require.js.Ładowanie jwplayer.js przy użyciu Require.js

Udało mi się załadować obiekty Knockout.js, obiekt Chart.js, a także niestandardowe obiekty zdefiniowane w Require.js.

Ale nie mogę załadować jwplayera używając Require.js. Jest to metoda błąd dostałam: Uncaught TypeError: nie można nazwać metodą „jwplayer” undefined

To jest mój przykładowy kod (nokaut, Wykres obiekty wszystko załadować)

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(); 
    }); 

Więc jak ładujesz plik jwplayer.js za pomocą narzędzia Require.js?

Odpowiedz

8

jwplayer.js nie definiuje moduł do require.js, więc będziesz musiał użyć shim config, coś takiego:

require.config({ 
    shim: { 
     'jwplayer/jwplayer': { 
      exports: 'jwplayer' 
     } 
    } 
}); 

Można zobaczyć więcej o tym, jak z niego korzystać w dokumentacji requirejs api.

Edytuj: literówka w przykładowym kodzie.

Edycja 2: należy zauważyć, że jwplayer() zwróci wartość null, jeśli nie może znaleźć odtwarzacza, który przekazałeś, więc nawet jeśli jest poprawnie załadowany, nadal będzie zgłaszał ten błąd. Jeśli otrzymujesz błąd, nawet po tym konfigurację, spróbuj dodać coś

console.log(jwplayer.api); 

w zwrotnego wymagać i sprawdzić swoją konsolę, aby zobaczyć, czy jest tam coś.

+0

dzięki, shim config działa idealnie! :) –

+0

Bardzo ładnie, oddano głos! :) – emaxsaun