2016-05-20 13 views
0

私は角度のあるアプリを持っていますが、一部のエリアはiFrame経由で他のサイトに埋め込むことができます。新しいタブのすべてのリンクを条件付きで開く

このような状況では、iFrameで使用されているすべてのリンクを新しいウィンドウで開くようにします。同じリンクは、iFrameにない場合は、ルート/状態を更新するだけです。

このアプリはui-routerを使用しています。

ページがiFrame内にある場合、条件付きですべてのルート/状態の変更を新しいウィンドウで簡単に開くことはできますか?ちょっと作品

$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams, options) { 

    if(inIFrame) { 
    $window.open($state.href(toState.name, toParams, {absolute: true}), '_blank'); 
    event.preventDefault(); 
    return; 
    } 
}) 

を、それはアプリの初期ロードのために発射:

私はこれを試してみました。

したがって、最初の状態の変更は、iFrameでレンダリングしたいルート(実際にはトラップするすべてのルート)を実際に起動しています。

答えて

0

これを行うにはもっとエレガントな方法がありますが、どうでしょうか?

+0

if(fromState.name!== '') 'fromState'という名前は、初めてアプリケーションを読み込むときに空ですそれは価値がありますが、効果的にあなたが提案したことをします。 –

関連する問題