2017-07-17 63 views
1

我使用以下在parent.html页HTML结构(并具有相应的控制器对该父HTML页)负载和当它的点击或从MD-选项卡选择呼叫MD-标签的内容(角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-包括,并选择选项卡中设置reladed视图,通过MD-上选

类似:

<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; 
}; 

模板目录:

​​
+0

让我试试这种方法,但这看起来非常原始的解决方法。 – Devendra

+0

我认为这是唯一的方法,如果您只想在选择选项卡时加载模板。 – Fetrarij

+0

我接受你的建议,因为它运作良好。谢谢@Fetra R. – Devendra

相关问题