Я все еще очень новичок в AngularJS и работаю над настройкой своего первого приложения. Я хотел бы быть в состоянии сделать следующее:Использование контроллеров AngularJS, созданных с помощью angular.module(). Controller()
angular.module('App.controllers', [])
.controller('home', function() {
$scope.property = true;
}]);
angular.module('App', ['App.controllers'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/', {templateUrl: 'partials/home.html', controller: home});
}]);
С помощью этой установки генерируется следующая ошибка:
Uncaught ReferenceError: home is not defined from App
Мой вопрос: Как я могу зарегистрировать контроллеров с помощью angular.module.controller()
(или $controllerProvider.register()
непосредственно) и используйте зарегистрированный контроллер в другом месте в моем приложении.
Мотивация: Я бы хотел избежать использования глобальных функций-конструкторов в качестве моих контроллеров (как и большинство примеров использования углов) или сложного пространства имен. Если я могу регистрировать и использовать контроллеры в качестве имен отдельных переменных (которые затем не помещаются в глобальную область), это было бы идеально.
Спасибо, что сделал трюк. Так просто. –
Вышеупомянутое решение, похоже, не работает ... Я получаю сообщение «Ошибка: аргумент« PhoneListCtrl »не является функцией, получил строку». Помогите! – mpowered
Если вы определяете контроллер как функцию ('function PhoneListCtrl() {}'), вы должны ссылаться на него как на функцию. Если вы определяете его с помощью .controller ('app.controller ('PhoneListCtrl', function() {})', вы должны ссылаться на него как на строку. –