javascript-如何在angular中创建utils库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-如何在angular中创建utils库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2122字,纯文字阅读大概需要4分钟。
内容图文
![javascript-如何在angular中创建utils库](/upload/InfoBanner/zyjiaocheng/680/a646194ad1c94af49fbd79b6cd46822d.jpg)
我对Angular很陌生.对基本问题很抱歉,但我找不到有关如何以正确方式在Angular中编写库的信息.
原因是可以从Angular模块以及可测性/模拟中受益.
图书馆
我正在将代码转移到Angular,但是我的代码大部分是基于我几个月来开发的库编写的.想像一下下划线.
所以我最初的想法是将其包装在一个角度模块中,例如:
angular.module('mylib', [])
.factory('map', map)
.factory('reduce', reduce)
.factory('find', find);
function map (...
每个工厂功能都是可测试的.然后像这样使用它:
angular.module('app', ['mylib'])
.controller('MainCtrl', ['$scope', 'map', MainCtrl]);
function MainCtrl($scope, map) {
... do stuff with map ...
我猜这对几个函数来说很好,但是我的库有20多个函数,实在太繁琐了,无法将每个函数定义为工厂,然后将它们注入到我的控制器中.
第二解决方案
另一种方法是只有一个工厂返回一个对象.有点像这样:
angular.module('mylib', [])
.factory('mylib', mylib)
function mylib () {
var exports = {};
exports.map = function (...
exports.reduce = function (...
exports.find = function (...
return exports;
}
然后像这样使用它:
angular.module('app', ['mylib'])
.controller('MainCtrl', ['$scope', 'mylib', MainCtrl]);
function MainCtrl($scope, mylib) {
... do stuff with mylib.map ...
但…
这是一个好方法吗?在Angular中编写并使用实用程序库的一种好方法是什么?可读性和可维护性很重要,但是我不希望使用太多样板代码.
解决方法:
如果您的库函数像您的示例一样通用,那么我不会首先将它们定义为Angular模块.写一个普通的JS库.这样可以减少无用的样板,并且作为奖励,您的库也可以在非Angular应用中使用. Angular与不了解它的库很好地配合使用,例如,不需要数据对象实现任何额外的功能(例如ko.observable,Backbone Model等)以与数据绑定一起使用.
成为Angular模块并不是可测试性的要求.我唯一想到的是Angular可以提高通用实用程序库中的可测试性的是依赖项注入(例如,将“当前时间”的模拟服务注入到时间库中以确定结果).如果您不需要任何这些,那么请尽量减少复杂性,然后编写一个普通的JS库.
如果绝对需要将库包装在Angular模块中(例如,不要用短名称空间污染全局名称空间),我仍然会用纯JS编写库,将其放入更复杂的名称空间中,然后使用别名它与一个Angular模块.
lib / handy-utilities-1.0.js
// Or any other descriptive namespace
var handyUtilities = {
map: function() { ... }
};
app / util.js
angular.module("handyUtilities", []).constant("util", handyUtilities);
内容总结
以上是互联网集市为您收集整理的javascript-如何在angular中创建utils库全部内容,希望文章能够帮你解决javascript-如何在angular中创建utils库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。