1

嗨,AngularJS:高度動態路由

我目前正在實施這樣的事情(AngularJS):

$routeProvider 
    .when('/root/:controllerName/blah/:blahId/blah/:blah', { 
     templateUrl: '/tmpl/:controllerName/blah/partials/:blah' + '.html', 
     controller: ':controllerName' + 'Ctrl' 
    }) 

這可能是過於複雜(與「胡說,胡說,等等),但我想確保它很清楚。

概括地說,我的目標來完成類似的東西(足夠),以微軟MVC如何使用自己的路由控制器 - 換句話說,非常充分的自主權:

routes.MapRoute(
    "Default",            // Route name 
    "{controller}/{action}/{id}",       // URL with parameters 
    new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
); 

在那之後,我打算LazyLoad控制器(我已經),但這需要(希望)與LazyLoading兼容。

有沒有人有過這種方法的成功,知道任何資源,或有任何想法如何做到這一點?

--PreThanks

回答

1

我不認爲你將能夠使用ngRoute來解決這一點,但我覺得ngInclude應該能夠幫助:

的Html

<div class="slide-animate-container"> 
    <div ng-include="template.url"></div> 
    </div> 

控制器

$scope.template.url = "";//some dynamic rules 

這裏是角文檔的鏈接在此:

https://docs.angularjs.org/api/ngRoute/directive/ngView

+0

THX Dalorzo,我一直在使用'時,( '... '模板:'

',控制器:' WhateverCtrl',controllerAs:'MyCtrl')',一個解析器加載':controller'並在'MyCtrl'下對其進行別名 - 但我希望能夠執行整個'預配置' .when(...)'並使Angular'$ interpolate'成爲'templateUrl'並需要一個控制器(並調用委託來有條件地獲取樣式)。感謝輸入,Dalorzo :) – Cody