Как использовать угловой впрыск с динамически нагруженным контроллером
Как получить динамически загруженный шаблон и контроллер? После загрузки моего частичного.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.
Это помогает?