javascript – AngularJS中的依赖注入是否只适用于Angular“Objects”?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – AngularJS中的依赖注入是否只适用于Angular“Objects”?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1540字,纯文字阅读大概需要3分钟。
内容图文
我开始使用AngularJS,而我正试图将依赖注入包裹起来.
具体来说,我试图了解DI与使用RequireJS声明依赖关系之间的差异.
Angular中的DI是否只适用于某些angular.module上定义的“对象”(工厂,服务,模型)?例如,我可以依赖一些外部库,比如使用DI的jQuery吗?
一般来说,RequireJS中的依赖管理和Angular中的DI之间的区别可以这样说:
RequireJS仅在首次需要时加载依赖项(延迟加载)并确保在执行之前存在所有依赖项,而Angular DI允许在运行时轻松更改依赖项,只要它的接口保持不变即可?
最后,DI总是传递依赖的实例吗?每次都是一个新实例,还是一个单例?它可以通过我可以实例化的“类”定义吗?例如,如果我需要将选项传递给构造函数,该怎么办?
解决方法:
Does DI in Angular only work for “objects” (Factories, Services, Models) which are defined on some angular.module?
是.该模块实际上是服务等的包装器.
could I depend on some external library like jQuery using DI?
是的,我们这样做:myModule.constant(“jQuery”,window.$).
A new instance every time, or a singleton?
除了$scope之外,Allways是一个单身人士.此外,控制器全部被重新实例化(但控制器功能当然仍然是单例).
Can it pass in a “Class” definition which I can instantiate myself?
当然是.只需从定义函数返回构造函数,例如:(编辑:这必须与工厂一起使用;使用服务将实例化MyClass并使用实例作为服务值)
factory("Xxx", function(dep1, dep2) {
function MyClass() {
...
}
MyClass.prototype.method = function() ...
return MyClass;
});
这也是你可以用RequireJS做的.
至于与RequireJS的区别:我可以确定的一点是,RequireJS包含一个脚本加载器以及一个DI框架(以及优化器).所以Require(AMD)模块与脚本文件有1-1关系.另一方面,Angular模块和服务与文件没有必需的关系.
除此之外,它们看起来与我相似.
内容总结
以上是互联网集市为您收集整理的javascript – AngularJS中的依赖注入是否只适用于Angular“Objects”?全部内容,希望文章能够帮你解决javascript – AngularJS中的依赖注入是否只适用于Angular“Objects”?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。