Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 访问页面时自动运行服务功能_Angularjs - Fatal编程技术网

Angularjs 访问页面时自动运行服务功能

Angularjs 访问页面时自动运行服务功能,angularjs,Angularjs,下面的routing.js代码使用$routeProvider注入给定页面。每个页面都有自己的控制器,该控制器使用服务切换工厂 是否有一种方法可以在访问页面时自动启动服务“TogglerFactory”的功能“menuToggle”?谢谢 //--routing.js---------------------------- (功能(){ "严格使用",; 有棱角的 .module('appModule') .config(['$routeProvider',routing]); 函数路由($r

下面的routing.js代码使用$routeProvider注入给定页面。每个页面都有自己的控制器,该控制器使用服务切换工厂

是否有一种方法可以在访问页面时自动启动服务“TogglerFactory”的功能“menuToggle”?谢谢

//--routing.js----------------------------
(功能(){
"严格使用",;
有棱角的
.module('appModule')
.config(['$routeProvider',routing]);
函数路由($routeProvider){
$routeProvider
.when(“/page1”{
url:“/page1”,
templateUrl:'views/page1.html',
控制器:“Page1Ctrl”
})
。当(“/page2”{
url:“/page2”,
templateUrl:'views/page2.html',
控制器:“Page2Ctrl”
})
}
})();
//---page1Ctrl.js------------------------
(功能(){
"严格使用",;
有棱角的
.module('appModule')
.controller('Page1Ctrl',['$scope','TogglerFactory',Page1Ctrl]);
功能页面1CTRL($scope,Toggler){
$scope.menuToggle=Toggler.menuToggle;
}
})();
//---menuToggle.js-----------------------
(功能(){
"严格使用",;
角度.module('appModule')
.factory('TogglerFactory',函数($rootScope){
var-TogglerFactory={};
TogglerFactory.menuToggle=函数(){
$rootScope.clicked=!$rootScope.clicked;
}
返回开关工厂;
});
}());您已经将“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();
    }

如果您只是在控制器中调用Toggler.menuToggle()方法,它将在每次点击路由(加载页面)时执行。那不管用吗?是的。谢谢,那没用。尽管巴斯朗特的建议奏效了:)事实上,我也这么说,但非常笼统。根据您的page1Ctrl.js,它是“Toggler.menuToggle()”