2017-07-29 20 views
0

我不想以正常的方式使用$ routeProvider配置硬編碼視圖和控制器。我怎樣才能讓服務器定義視圖和可選的控制器當angularjs中的路由變化

基本上我想subsribe到routechanged事件,調用服務器上提供當前路由的一些邏輯,並獲得適當的視圖/控制器返回爲json(作爲承諾),然後將其編譯/顯示在應用程序的主要部分。

這似乎是一個微不足道的問題,但我還沒有找到解決方案。

我試過用ng-include替換ng-view,但是我不能動態地改變它的ng控制器。

我試着創建一個自定義指令,可選地將ng-include與ng-controller一起包裝在一個div中(如果提供的話),但是由於這是在模板函數內執行的,我無法解析控制器名稱,因爲模板功能無法訪問示波器

如果任何人能夠顯示路徑,將不勝感激。

+0

沒有這個功能被內置到角,而無需使用第三方延遲加載模塊 – charlietfl

回答

0

我已經結束了在我的控制器,它似乎工作這樣做:

function loadPage(page) { 

    var container = $("#main"); 
    var element = $("<div>"); 
    var scope = $rootScope.$new(); 

    server.loadViewTemplate(page.view).then(function(template) { 
     element.html(template); 
     container.html(element); 
     if (page.controller) { 
      var templateController = $controller(page.controller, { $scope: scope }); 
      element.children().data('$ngControllerController', templateController); 
     } 
     $compile(element)(scope); 
    }); 


} 
相關問題