创建通用控制器功能 [英] Creating common controller functions
问题描述
我如何建立某种形式的utils的捆绑,这将是访问从我的所有控制器?
我有这条路线code我的主要模块:
How do I create some sort of utils bundle that would be accessible from all my controllers? I have this route code in my main module:
'use strict';
/* App Module */
angular.module('lpConnect', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/home', {template: 'views/home.html', controller: HomeCtrl}).
when('/admin', {template: 'views/admin.html', controller: AdminCtrl}).
when('/connect', {template: 'views/fb_connect.html', controller: MainAppCtrl}).
otherwise({redirectTo: '/connect'});
}]);
和我想,这将是共同的 HomeCtrl
, AdminCtrl
, MainAppCtrl功能
and I want a function that will be common to HomeCtrl
,AdminCtrl
,MainAppCtrl
我应该怎么做,在AngularJS?
How should I do it in AngularJS?
推荐答案
在角度来定义普通code的方式是通过服务。
The way to define common code in angular is through Services.
您需要定义一个新的服务,像这样:
You would define a new service like so :
.factory('CommonCode', function ($window) {
var root = {};
root.show = function(msg){
$window.alert(msg);
};
return root;
});
在你的控制器,你会注入这个service..like这样
In your controller you would inject this service..like so
function MainAppCtrl($scope,CommonCode)
{
$scope.alerter = CommonCode;
$scope.alerter.show("Hello World");
}
就包括普通code作为参数传递给你的控制器功能..角将其注入照顾你(阅读依赖关系注入..to知道这里发生了什么。)
Just include CommonCode as an argument to your controller function.. Angular will take care of injecting it for you ( Read on Dependancy Injection ..to understand what is happening here. )
这篇关于创建通用控制器功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!