How can I send Global varibale data from view to controller?

I have my Angular view file like below.

<!DOCTYPE html>

<video id="myVideo" class="video-js vjs-default-skin"></video>
  var dataUri;
  var videoData;
    var player = videojs("myVideo", {
    controls: true,
    width: 320,
    height: 240,
    fluid: false,
    plugins: {
        record: {
            audio: true,
            video: true,
            maxLength: 100,
            debug: true
}, function(){
    // print version information at startup
    videojs.log('Using video.js', videojs.VERSION,
        'with videojs-record', videojs.getPluginVersion('record'),
        'and recordrtc', RecordRTC.version);
// error handling
player.on('deviceError', function() {
    console.log('device error:', player.deviceErrorCode);
player.on('error', function(error) {
    console.log('error:', error);
// user clicked the record button and started recording
player.on('startRecord', function() {
    console.log('started recording!');
// user completed recording and stream is available
player.on('finishRecord', function() {
    console.log('player : ',;
    videoData = player.recordedData;
    console.log('finished recording: ', player.recordedData);


function getVideoData()
    return videoData;
<button id="record" onClick="getVideoData();" ng-model="onFileSelect()"></button>

When player.on('finishRecord', function() function is called it will have the recorded video data in player.recordedData variable. What My problem is, I want to send the player.recordedData to the angular controller on button click whose id is record.

1 answer

  • answered 2018-04-17 05:19 huan feng

    If the vairiable is defined globally, you can directly use it in any of controllers. Try to put you data in format.


    var model = {videoData: null};
    player.on('finishRecord', function() {
        model.videoData = player.recordedData;

    in controller:

    //directly use it, ensure it has data