【发布时间】:2014-02-12 10:10:03
【问题描述】:
我正在尝试在 Angular JS 中通过 3 个控制器重用一些更大的功能。我不想将这些函数固定在我的根范围内,因为我想避免在这 3 个控制器中仅使用 3 次的函数。
angular.module('adminModule', ['adminDependency'])
.controller('ctrl1', ['$scope', 'details', function ($scope, details) {
// use functions
}])
.controller('ctrl2', ['$scope', 'details', function ($scope, details) {
// use functions
}])
.controller('ctrl3', ['$scope', 'details', function ($scope, details) {
// use functions
}])
你能告诉我如何在不将我的函数写入根范围的情况下实现这一目标吗?
在工厂内尝试过,但调用 AdminModule.toLevelKey() 不起作用...
.factory('AdminModule',
[ '$resource', 'serviceURL', function ($resource, serviceURL) {
return $resource(serviceURL + 'class/:id', {
id : '@id'
}, {
getClasses : {
method : 'GET',
url : serviceURL + 'extended/class',
isArray : true
},
toLevelKey : function (value) {
var return_key = parseInt(Math.floor(value / 3));
var return_level = value % 3;
return { level : return_level + 1, levelTranslationKey : return_key + 1 };
},
fromLevelKey : function (level, key) {
if (angular.isDefined(level)) {
var value = (key - 1) * 3 + (level - 1);
return value;
} else {
return null;
}
}
}
);
} ]);
【问题讨论】:
标签: javascript angularjs controller