我对AnjularJs很新,所以请耐心等待。在我当前的代码中,各种控制器使用相同的方法。已经在每个控制器上粘贴了方法,这不是很好的做法。但现在我想在各种控制器之间共享这些方法作为CommonUtility.js为了做到这一点,我需要提供服务或工厂,我在网上看了很多。但不确定如何? 如果您能告诉我该怎么做,请参阅下面的代码。 filename:Controller.js
(function(){
var somecontrollers = angular.module('angular');
somecontrollers.controller('NameofController', function ($scope, $http) {
//code
..
..
..
});
})();
文件名:CommonUtilities.js
var CommonUtilities = angular.module('CommonUtilities', [])
.service('Collapse', function () {
this.CollapseTree = function () {
var name
return name
}
method2
method3
...
});
如何在Controller.js中添加对commonUtilities.js或其方法的引用?任何帮助表示赞赏。 还有一个问题。如何在CollapseTree函数中使用$ scope? 谢谢。
答案 0 :(得分:1)
这样写,所以非常清楚:
(function(){
'use strict';
var somecontrollers = angular.module('angular', ['CommonUtilities']);
somecontrollers.controller('NameofController', NameofController);
NameofController.$inject = ['$scope', '$http', 'Collapse'];
function NameofController($scope, $http, Collapse) {
Collapse.CollapseTree();
});
}();
您只需通过之前提供的名称来引用它。此外,请务必包含包含您服务的模块。
您无法在服务中使用$scope
。 $scope
严格用于控制器,作为在视图中引用方法和变量的方法。