Я вроде нового в рамках AngularJS, и я пытаюсь перенести мой тестовый проект, используя стандартный маршрутизатор использовать UI-маршрутизатор, но я получаю следующее сообщение об ошибке:Угловая UI-маршрутизатор, контроллер не определен
Error: [ng:areq] Argument 'mainCtrl' is not a function, got undefined
То, что я сделал до сих пор является:
контроллер:
// mainCtrl.js
angular.module("sm-web")
.controller('mainCtrl',['$scope',
function($scope) {
...
}]);
маршрутизатор:
angular.module('sm-web', ['ui.router'])
.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('root');
$stateProvider
.state('root', {
url: '',
templateUrl: path + 'ng/sm/view/main.html',
controller: 'mainCtrl'
});
}]);
индекс:
<body ng-controller="mainCtrl">
<main-menu></main-menu>
<div class="container">
<div ui-view></div>
</div>
</body>
Это работает, когда я использую стандартный маршрутизатор, но не с UI-маршрутизатором. Кто-нибудь имеет представление о том, что я делаю неправильно?
Поместите '' 'после' $ scope' в свой контроллер – Lauromine
Не нужно писать 'ng-controller =" mainCtrl "' вы уже привязываете 'mainCtrl' к шаблону' ng/sm/view/main.html' в ваш маршрутизатор. –
Метод ['иначе'] (https://github.com/angular-ui/ui-router/wiki/URL-Routing#otherwise-for-invalid-routes) получает URL-адрес, а не состояние. Я не уверен, что это кусает ваши проблемы, но попробуйте. – gfpacheco