2016-07-11 10 views
2

Youtubeビデオを再生するiframeビューにYoutubeビデオURLを渡そうとしています。しかし、ビューを開くと、白いページが表示され、それ以外は表示されません。イオンのコントローラーからのビューにURLを渡すことができません

コントローラ

.controller('youtubeCtrl', function ($scope, $http, $ionicSideMenuDelegate){ 

    // Pop-up Navigation Menu 
    $scope.openMenu = function() { 
    $ionicSideMenuDelegate.toggleLeft(); 
    } 

    $scope.video_url = "https://www.youtube.com/embed/LFTEUBHpFq0"; 
}) 

ビュー私はIFRAMEを開き、プレイするには「pass'video_urlしたい

<ion-view title="Youtube"> 
    <ion-nav-buttons side="left"> 
    <button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></button> 
    </ion-nav-buttons> 

    <ion-content> 
    <div class="video-container"> 
     <iframe ng-src={{video_url}} frameborder="0" width="560" height="315" allowfullscreen></iframe> 
    </div> 
    </ion-content> 
</ion-view> 

。しかし、それは起こっていません。私は間違って何をやっているのですか?どんな助けでも大歓迎です。

+0

ウェブブラウザから実行しているときに機能しますか?あなたのイオンアプリでyoutube.comを許可していない場合、そのURLのコンテンツにアクセスすることができない可能性があります。 https://cordova.apache.org/docs/ja/latest/reference/cordova-plugin-whitelist/#network-request-whitelist –

+0

ウェブブラウザで動作します。 –

+0

ログをコンソールに投稿できる場合は便利です。 –

答えて

1

コントローラに$sceサービスを、そしてそこにURLをtrustAsResourceUrl注入する必要があります。

お使いのコントローラにあります。このことができますFiddle

希望の作業

.controller('youtubeCtrl', function ($scope, $http, $ionicSideMenuDelegate, $sce){ 

    // Pop-up Navigation Menu 
    $scope.openMenu = function() { 
    $ionicSideMenuDelegate.toggleLeft(); 
    } 
    var videoSource = "https://www.youtube.com/embed/LFTEUBHpFq0"; 
    $scope.video_url = $sce.trustAsResourceUrl(videoSource) 

}) 

+0

大変感謝します。それは魅力のように働いた。私はとても幸せだ。再度、感謝します。 –

+0

@BlakeTucker私はそれが助けてうれしいですが、この答えはあなたの質問の要件を満たしていないのですか? –

+0

ページビューで、私はYouTubeのビデオを表示して再生することができませんでした。私はコントローラに$ httpsを追加しようとしました。他にもたくさんのことをしました。すべて無駄に。コントローラーに$ sceを追加すると、YouTubeのビデオをページビューで表示して再生することができました。 イオン性1.7.8, ノードv0.12.1、 コードヴァーバーv5.4.0 –

関連する問題