У меня есть скрипт angularjs с этим кодом:Глобальных переменного между запуском и контроллером angularjs
var myApp = angular.module('App_example', ['duScroll'])
.run(function($rootScope, $location, $window) {
var url = $window.location.href;
if(url.indexOf("section1") != -1) {
$rootScope.edition = "section1";
} else {
if(url.indexOf("section2") != -1) {
$rootScope.edition = "section2";
} else if(url.indexOf("section3") != -1) {
$rootScope.edition = "section3";
} else {
$rootScope.edition = "section4";
}
}
if(!history || !history.replaceState) {
return;
}
$rootScope.$on('duScrollspy:becameActive', function($event, $element){
//Automaticly update location
var hash = $element.prop('hash');
if (hash) {
history.replaceState(null, null, hash+'_'+$rootScope.edition);
}
});
});
и этот контроллером:
myApp.controller('ImageController', ['$scope', '$window', '$location', '$document', '$rootScope', function($scope,$window,$location,$document,$state,$rootScope) {
var url = $window.location.href;
if(url.indexOf("section1") == -1) {
$rootScope.edition = "section1";
} else {
if(url.indexOf("section2") != -1) {
$rootScope.edition = "section2";
} else if(url.indexOf("section3") != -1) {
$rootScope.edition = "section3";
} else {
$rootScope.edition = "section4";
}
}
});
Но у меня есть эта ошибка flollowing, и я не знаю, почему , Как передать глобальную переменную между прогоном и контроллером. Это для манипулирования URL без перезагрузки.
TypeError: Невозможно установить свойство 'издание' неопределенной
Спасибо.
Вы пропустили '$ state' в определении зависимостей, поэтому' $ rootScope' присваивается параметру '$ state'. –