AngularJS: высокодинамичная маршрутизация

Привет,

В настоящее время я пытаюсь реализовать что-то вроде этого (AngularJS):

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

Это, вероятно, слишком сложно (с «бла, бла, бла»), но я хотел убедиться, что это ясно.

Короче говоря, я стремлюсь сделать что-то похожее (достаточно) на то, как Microsoft MVC использует свою маршрутизацию к контроллерам — другими словами, очень автономно:

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

После этого я намерен LazyLoad контроллера (который у меня уже есть), но он должен быть (надеюсь) совместимым с LazyLoading.

Кто-нибудь добился успеха с этим подходом, знает какие-либо ресурсы или имеет какие-либо идеи о том, как это сделать?

--Предварительно спасибо


person Cody    schedule 16.05.2014    source источник


Ответы (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

person Dalorzo    schedule 16.05.2014
comment
Спасибо, Далорзо, я использовал when('...', template: '<div ng-include="'/r/o/u/t/e/{{view}}'" ="" ng-controller="MyCtrl"></div>', controller: 'WhateverCtrl', controllerAs: 'MyCtrl'), где преобразователь загружает :controller и присваивает ему псевдоним под 'MyCtrl', но я хотел бы иметь возможность выполнить всю «предварительную настройку» .when(...) и иметь Angular $interpolate templateUrl и требовать контроллер (и вызвать делегата для условной выборки стилей). Спасибо за вклад, Далорзо :) - person Cody; 20.05.2014