2017-05-01 63 views
0

以我的HTML頁面,有三個選項卡鍵合到它每一個都具有唯一的控制器如下:有一種方法來重新加載角控制器編程

MainHTML(app.pages.managing.html):

<div id="DetailsViewContainer"> 
    <div ng-if="selectedTab === 'tab1'"> 
     <div ng-include="getTabUrl('tab1')" ng-controller="DetailsController"></div> 
    </div> 
</div> 
<div id="CoursesViewContainer"> 
    <div ng-if="selectedTab === 'tab2'"> 
     <div ng-include="getTabUrl('tab2')" ng-controller="CoursesController"></div> 
    </div> 
</div> 
<div id="UsersViewContainer"> 
    <div ng-if="selectedTab === 'tab3'"> 
     <div ng-include="getTabUrl('tab3')" ng-controller="UsersController"></div> 
    </div> 
</div> 

主HTML已經與父控制器保稅如下:

'use strict'; 
angular.module('app.pages.manage').config([ 
    '$routeProvider', 
    function($routeProvider, appSettingsProvider) { 
     $routeProvider 
     .when('/:lang?/group/landing/v2/manage/', 
       { 
        templateUrl: '/js/app/pages/manage/views/app.pages.managing.html', 
        controller: 'mainController' 
       }); 
     } 
]); 

我的要求是,單擊事件,我要初始化與所選擇的TA保稅控制器灣對於HTML文件中的三個綁定控制器,我沒有單獨的url配置,所以我不能使用$ location服務。我在UI路由器中探索了$ state,因爲我不想初始化可能有用的父控制器(在爲三個控制器定義三條不同的路由之後)。但我正在使用ng-route模塊,所以它不適合我。

那麼有沒有什麼辦法可以讓我的控制器在切換選項卡(不帶url)時以編程方式重新加載? 我也想通過路由而不是ng-controller來綁定這個控制器,但是我也想阻止重新加載父控制器(mainController)的狀態,然後只重新加載選定的控制器,我找不到使用ng-路線。

+0

對於上述問題,我也嘗試使用ui-router作爲我的問題需要視圖的父子關係。但由於某種原因,它的依賴性與我的項目中的其他模塊相沖突,並且會引發錯誤。在原型UI路由器工作很好。我注意到有一種以編程方式調用控制器函數的方法,但似乎沒有任何方式在click事件上調用整個控制器。任何幫助,將不勝感激。謝謝。 –

回答

0

Nehal,你真的應該考慮只投入一些時間與UI路由器工作。你想要的東西可以在UI路由器中使用嵌套/子狀態進行優雅地處理,這是爲了這種東西。

+0

感謝您的建議。但是我已經爲ui-router投入了兩天時間,並且由於一些限制,我不能再給它更多的時間。將看看我是否有更多時間。 –

相關問題