2015-03-13 2 views
1

Я новичок в Angular.JS, и я пытаюсь загрузить файл контроллера динамически, когда запрашивает его содержимое, загруженное с ng-include, я делаю это так, потому что страница, которую я создаю будет иметь несколько контроллеров и я достаточно сделать начальная страница для быстрой загрузки из-за его размера, я не уверен, чтобы сделать это, и я думал, что я бы добиться этого, просто делать:Как загрузить файл контроллера AngularJS при загруженном содержимом

<script type="text/javascript" src="js/controllers/controllerFile.js"></script> 

внутри содержимого, загруженного.

контроллер файла, как это

app.controller('parseQuery', function() 
{ 
    this.object = 'Enter query and parse.'; 

    this.parse = function() 
    { 
     this.object = JSON.stringify(window.getParam(this.query), null, '\t'); 
    }; 

    this.getURL = function() 
    { 
     this.query = document.URL; 
     this.parse(); 
    }; 
}); 

файл html называет контроллер с ng-controller, как он должен работать. Но когда содержимое загружается, javascript возвращает ошибку Argument 'parseQuery' is not a, поэтому ничего не работает, как я могу добиться загрузки файла контроллера после того, как приложение уже загружено?

+2

Угловые не могут ленивые контроллеры загрузки (или сервисы или что-то еще угловое) после того, как они были загружены. Из коробки все равно. Вы можете взглянуть на https://github.com/ocombe/ocLazyLoad или подождать Angular 2, который будет поддерживать ленивую загрузку. – jlowcs

+0

@jlowcs Итак, у меня нет выбора, кроме как загрузить все контроллеры на начальной странице? – nosthertus

+0

Я вполне уверен, что ваш общий размер кода намного меньше, чем сам angular.js, который должен быть загружен наверняка - так в чем смысл? –

ответ

1

Для ленивой загрузки ваших скриптов вы хотите проверить загрузчик или CommonJS. Эти библиотеки предоставляют возможность загрузки сценариев по требованию.

Дэн Вахлин имеет excellent blog post подробно описывая, как использовать RequireJS с угловым.

В 1.3.14 AngularJS recieved support for CommonJS. Это будет вашим лучшим выбором.

Смежные вопросы