Код routing.js ниже вводит заданную страницу, используя $ routeProvider. На каждой странице есть собственный контроллер, который использует сервис ToggleFactory.
Есть ли способ автоматически запускать функцию "menuToggle" службы "TogglerFactory" всякий раз, когда страница посещается? благодаря
//---routing.js----------------------------
(function () {
'use strict';
angular
.module('appModule')
.config(['$routeProvider', routing]);
function routing ($routeProvider) {
$routeProvider
.when('/page1', {
url: "/page1",
templateUrl: 'views/page1.html',
controller: 'Page1Ctrl'
})
.when('/page2', {
url: "/page2",
templateUrl: 'views/page2.html',
controller: 'Page2Ctrl'
})
}
})();
//---page1Ctrl.js------------------------
(function () {
'use strict';
angular
.module('appModule')
.controller('Page1Ctrl', ['$scope', 'TogglerFactory', page1Ctrl]);
function page1Ctrl($scope, Toggler) {
$scope.menuToggle = Toggler.menuToggle;
}
})();
//---menuToggle.js-----------------------
(function () {
'use strict';
angular.module('appModule')
.factory('TogglerFactory', function($rootScope) {
var TogglerFactory = {};
TogglerFactory.menuToggle = function(){
$rootScope.clicked = !$rootScope.clicked;
}
return TogglerFactory;
});
}());
Вы уже вводите "TogglerFactory" в свой контроллер, так что просто делайте
Toggler.menuToggle() inside your controller
контроллер в целом
var appModule = angular.module('appModule', []);
appModule.service('TogglerFactory', function() {
return {
menuToggle : function() {
alert("Inside ToggleFactory");
}
}
})
appModule.controller('Page1Ctrl', function($scope, $http, TogglerFactory) {
TogglerFactory.menuToggle();
});
для вашего контроллера
appModule.controller('Page1Ctrl', ['$scope', 'TogglerFactory', page1Ctrl]);
function page1Ctrl($scope, Toggler) {
Toggler.menuToggle();
}