下面的routing.js代码使用$ routeProvider注入给定页面。每个页面都有自己的控制器,它使用服务ToggleFactory。
有没有办法在访问页面时自动启动服务“TogglerFactory”的“menuToggle”功能?感谢
//---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;
});
}());
答案 0 :(得分:0)
您已经将“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();
}