我希望为角度1.5创建我自己的plugin
或module
,如$http
。
示例:" angular-own-plugin.js":
angular.module('ownPlugin', function() {
$scope.functionA = function () {return 1;};
$scope.functionB = function () {return 2;};
$scope.functionC = function () {return 3;};
$scope.functionX = function (n) {return n * $scope.functionA();};
})
示例:"整合" $ownPlugin
.controller('MyCtrl', function ($http, $ownPlugin){
$scope.number = $ownPlugin.functionX(10);
})
什么是创建插件的最佳方式?我不知道是否使用factory
,service
或其他方法。
由于
答案 0 :(得分:1)
假设您将其称为插件,因为您希望在AngularJs应用程序中的任何位置使用独立模块。因此,AngularJs按模块工作,因此最好的方法是使用模块。
(function () {
angular.module('owl', [])
.factory('$ownPlugin', function() {
var plugin = {};
plugin.functionA = function () {return 1;};
plugin.functionB = function () {return 2;};
plugin.functionC = function () {return 3;};
plugin.functionX = function (n) {return n * plugin.functionA();};
return plugin;
});
})();
因此,您可以通过将其注入模块声明来在您的应用上使用它。
(function () {
angular.module('myApp', ['owl'])
.controller('MyCtrl', function ($http, $ownPlugin){
$scope.number = $ownPlugin.functionX(10);
});
})();
关于使用工厂或服务的说明:它没有太大区别,您可以将它用于设计决策,工厂使用构建函数作为吸气剂(即{{1但是服务使用构建函数作为构造函数(即
myFactory = MyFactoryFn();
)