Как включить и использовать в моем приложении ui-router без ошибок инжектора?
ОБНОВЛЕНИЕ Я вернулся в состояние, прежде чем включать любой пользовательский интерфейс
Я получаю ту ужасную ошибку $ инжектора, которую не могу исправить, с тех пор я вернулся назад и должен знать, как просто включить ui-router и добавить функцию Config, которая просто направит пользователя в / login, который загружает / login.html
Я делал это много раз раньше, только в этот раз это не сработает.
(function() { "use strict";
var app = angular.module('tickertags', [
'infinite-scroll',
'apiFactory',
'scopeFactory',
'tagFactory',
'tickerFactory',
'timeSpanFactory',
'overlayDirective',
'searchPopoverDirectives',
'notificationDirectives',
'platformHeaderDirectives',
'controlHeaderDirectives',
'viewHeaderDirectives',
'alertsPanelController',
'alertPanelDirectives',
'tickersPanelDirectives',
'tickersSelectFactory',
'tagsPanelDirectives',
'tagDetailsFactory',
'tagHoverDirective',
'tagSearchDirective',
'tagsFilterDirective',
'focusMeDirective',
'chartHeaderController',
'chartHeaderDirectives',
'chartPanelDirective',
'chartIQDirective',
'socialMediaController',
'socialMediaDirectives',
'socialMediaFactory'
])
.controller('DashCtrl', Controller);
/*
I WANT TO ADD THE CONFIG HERE...
/login = login.html
*/
Controller.$inject = [
'$scope',
'$rootScope',
'ScopeFactory',
'TickerFactory'];
function Controller($scope,
$rootScope,
ScopeFactory,
TickerFactory) {
/** Init DashCtrl scope */
/** ----------------------------------------------------------------- */
var vs = $scope;
vs.showNote = true,
vs.mouseX = '',
vs.mouseY = '';
ScopeFactory.saveScope('root', vs);
/** Detect if a tagHover has been shown and ready bodyClick to close */
vs.$on('tagHoverOpen', function(events,data) {
vs.bodyClick = function() {
$rootScope.$broadcast('bodyClick');
};
});
/** Remove eventListener after tagHover is closed */
vs.$on('destroy', function() {
vs.bodyClick = angular.noop();
});
/** Get and store all tickers, eventually just first 100 */
getAllTickers();
function getAllTickers() {
TickerFactory.getTickers();
};
};
})();
2 ответа
Вам нужно добавить ui.router
модуль внутри модуля приложения для использования угловых ui.router
функции.
Код
var app = angular.module('tickertags', [
//..other modules here.
'socialMediaFactory',
'ui.router' //<--added it
])
Если вы создали среду для своего проекта с использованием yeoman (что всегда является хорошей идеей для начальной загрузки вашего проекта и избегает написания большого количества стандартного кода), то у вас будет существующая конфигурация bower and grunt в вашем проекте.
С этого момента вы можете выполнить шаги по замене ngRouter в вашем проекте на ui-router.
казнить
bower install angular-ui-router --save
Измените ваш index.html, заменив
<div ng-view=""></div> with <div ui-view=""></div>
- Обновите ваш app.js, включив в него модуль ui-router и соответствующую конфигурацию для разных состояний.
Вот пример конфигурации:
angular
.module('myApp', [
'ui.router'
])
.config(function ($stateProvider, $urlRouterProvider) {
// For any unmatched url, send to /
$urlRouterProvider.otherwise("/");
$stateProvider
.state('/', {
url:"/",
templateUrl: '../modules/main/main.html',
controller: 'mainCtrl'
})
.state('about', {
url:"/about",
templateUrl: '../modules/about/about.html',
controller: 'aboutCtrl'
});
});
Если у вас настроен хрюк и болван для вашего проекта, то зависимый angular-ui-router.js
будет автоматически добавлен в ваш index.html