Как использовать угловой впрыск с динамически нагруженным контроллером

Как получить динамически загруженный шаблон и контроллер? После загрузки моего частичного.html и контроллера.js я бы предположил, что следующим шагом будет $ инжектор? Но как мне это использовать? что-то вроде этого...?

Мой прогресс до сих пор: http://plnkr.co/edit/rB5zteYTZ2L1WB5RzlHg

данные возвращаются из $http.get()

var $injector = angular.injector(['ng']);

$injector.invoke(function($rootScope, $compile, $document) {
    $compile(data)($rootScope);
    $rootScope.$digest();
});

В каком формате должен быть файл Controller.js для корректного подключения инжектора / компилятора? Могу ли я просто сделать то, что я сделал в Plunker?

Controller1.js

app.controller('Controller1', function ($scope, $famous) {
      console.log("Inside Controller1");
});

Примечание. Я специально стараюсь избегать использования requirejs, ng-route, ui-route, ocLazyLoad и т. Д. Я хотел бы понять основы того, что эти пакеты выполняют для маршрутизации и динамической загрузки представления / контроллера.

1 ответ

Я не уверен, что полностью понимаю ваш вопрос, но похоже, что вы хотите динамически загружать представления и контроллеры. Я использую комбинацию Angular UI Router и AngularAMD. Он работает очень плавно, и при таком подходе вы получаете хорошее разделение и загрузку по требованию.

С веб-страницы углового интерфейса UI:

templateUrl: "partials/state1.list.html",
   controller: function($scope) {
   $scope.items = ["A", "List", "Of", "Items"];
}

При такой конфигурации указанный контроллер будет загружен и подключен к state1.list.html.

Это помогает?

Другие вопросы по тегам