2016-09-02 5 views
1

私はIonicアプリにドキュメントのリストを表示しています。ドキュメント上のユーザータップとドキュメント拡張が.autocadで終わらない場合は、Cordova InAppBrowserでドキュメントを開く必要があります。ただし、拡張子が.autocadの場合は、ビューアの状態(サードパーティのビューアがファイルをロードする場所)にルーティングする必要があります。角度 - 条件に基づいてコントローラ機能をルーティングまたは呼び出すに移動します。

これは、文書リストはHTMLテンプレートで作成された方法です

</div> 
<ion-scroll direction="y" style="{{documentListScrollHeight}}"> 
    <ion-list ion-list can-swipe="true" show-delete="false"> 
    <ion-item 
       ng-repeat="(docName, format) in folder.Documents" 
       class="item item-thumbnail-left" on-tap="openDocInAppBrowser(docName, format)"> 
     <div class="row"> 
     <h3>{{docName}}</h3> 
     </div> 
     <div class="col"> 
     <h4 style="color: #4b4d4e">File Type: {{format}}</h4> 
     </div> 
     </div> 
    </ion-item> 
    </ion-list> 
</ion-scroll> 
</div> 

ユーザーがドキュメントをタップすると、今それはコルドバInAppBrowserで文書を開き、コントローラ内の関数を呼び出します(PDFを言うことができます) 。この機能は正常に動作しています。

フォーマットが.autocadの場合は、代わりにビューアの状態にジャンプするように、オンタップの内部にチェックを入れる必要があります。何かのように

on-tap="if(format != 'autocad' {openDocInAppBrowser(docName, format)} else { $state.go('viewer', {docName: docName, format: format })}) 

Angularでこれを行う正しい方法は何ですか?ここで

は私の状態が

.state('viewer', { 
    url: '/viewer', 
    params: { 
    docName: null, 
    format: null 
    }, 
    templateUrl: 'templates/viewer.html', 
    controller: 'viewerCtrl' 
}) 

答えて

0

あなたのコードが正しい定義されている方法です。コードをタップで書くのではなく、このコードを関数に組み込むことができます。 $ scope.check_format = function(docName、format){

if(format!= 'autocad' {openDocInAppBrowser(docName、format)}他{$ state.go( 'ビューア'、{DOCNAME:DOCNAME、フォーマット形式})}

}などHTMLコードONTAPに= check_format(DOCNAME、フォーマット)

関連する問題