2017-07-17 8 views
1

parent.htmlページで次のHTML構造を使用しています(この親HTMLページには対応するコントローラがあります)md-tabの内容を読み込んだり、md-tabs(角1.5)から選択した場合

<md-tabs md-dynamic-height class="report-tabs" layout-align="center stretch" md-no-pagination="true"> 
<md-tab> 
    <md-tab-label> 
     <span class="tab-label">Tab 1</span> 
    </md-tab-label> 
    <md-tab-body> 
     <div ng-include="tab1-page-URL"></div> 
    </md-tab-body> 
</md-tab> 
<md-tab> 
    <md-tab-label> 
     <span class="tab-label">Tab 2</span> 
    </md-tab-label> 
    <md-tab-body> 
     <div ng-include="tab2-page-URL"></div> 
    </md-tab-body> 
</md-tab> 

現在、私はこのparent.htmlページをロードすると、すべてのタブのすべての内容は、最初にロードされてきています。

  1. アクティブな(選択/クリックされた)ときに、タブの内容が読み込まれる場所はありませんか?

  2. このような規定がない場合、特定のタブが選択されている場合、子タブのコントローラの機能をどのように呼び出すことができますか?現在、すべての子タブのコントローラのすべての関数が呼び出されています。これは時間がかかり、ページがコンパイルとレンダリングを完了したときに初めてタブが表示される場所では不要です。

私はparent.htmlページにお子様タブコントローラの機能を呼び出してみたが、すべてのMD-のタブの内容が読み込まれていない場合を除き、子コントローラから何もアクセスできません。このページのアクセス可能な部分のみがparent.htmlのコントローラ機能になります。

私が進めることができる他の方法があれば教えてください。ここで完全に何かが欠けていますか?ありがとうございました。

答えて

2

公式の文書から、md-tabを使用する場合、遅延読み込みコンテンツはありません。

このような規定がない場合、特定のタブを選択したときに、子の機能を タブのコントローラで呼び出すにはどうすればよいですか?現在、 のすべての子タブのコントローラの関数が呼び出されています。 は、 ページのコンパイルとレンダリングが完了したときに初めてユーザーが最初のタブを表示するには時間がかかり、不要ですか?

私の方法は、動的NG-含んを使用して、その後、ボタンをタブのみを使用して、などMD-上の選択

何かで、タブを選択する時にreladedビューを設定することである。

<md-tabs> 
    <md-tab label="Tab #1" md-on-select="onTabSelected(1)"></md-tab> 
    <md-tab label="Tab #2" md-on-select="onTabSelected(2)"></md-tab> 
    <md-tab label="Tab #3" md-on-select="onTabSelected(3)"></md-tab> 
</md-tabs> 
<md-content class="md-padding"> 
    <ng-include src="'templates/tabs/'+ tabId +'.html'"></ng-include> 
</md-content> 

コントローラ:

$scope.tabId = 1; //default template loaded 

$scope.onTabSelected = function(tabId) { 
    //you can add some loading before rendering 
    $scope.tabId = tabId; 
}; 

templatesディレクトリ:

​​
+0

私はこのアプローチを試してみましょうが、これは非常に生の回避策に見えます。 – Devendra

+0

これは、タブを選択するときにのみテンプレートをロードする場合は、これが唯一の方法だと思います。 – Fetrarij

+0

私はあなたの提案がうまくいくので、私はそれを受け入れます。ありがとう@Fetra R. – Devendra

関連する問題