AngularJS如何将依赖传递给 AngularJS 的原型函数

发布时间: 2017/4/16 12:18:47
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

有不那么繁琐访问中的原型函数的依赖项 (即构造函数参数) 的方法吗?特别是对AngularJS 服务

我只知道

function SomeSrvc($http, ...other deps...) {
  var srvc = this;

  // Verbose way of storing dependencies
  srvc.$http = $http;
  srvc.dep2 = dep2;
  srvc.dep3 = dep3;
  srvc.dep4 = dep4;
}

SomeSrvc.prototype.doSomething = function() {
  var srvc = this;
  // Do stuff with srvc.$http and other srvc.deps...
};

解决方法 1:

最短的我知道将会避免使用外部范围和简单地使用闭包的原型︰

function SomeSrvc($http, ...other deps...) {
  var srvc = this;

  srvc.doSomething = function() {
    // just use $http without this / srvc
  };
}

短和好。如果你真的喜欢原型式的语法,只是调整缩进 (但在我看来,这将是一种丑)︰

function SomeSrvc($http, ...other deps...) {
  var srvc = this;



srvc.doSomething = function() {
  // Do stuff with srvc.$http and other srvc.deps...
};

}

这给你同样的效果 — — 创建对象使用 new 运算符将此函数和角服务创建这种方式。

此外,这种方式有一个很好的副作用。它并不创建变量在服务对象上,因此可以认为它们 private ,当将你所有的变量指派给服务使他们 public ,可以从另一个角度模块访问。目前只是注入您的服务您将能够使用所有注入的模块通过打电话只如

SomeSrvc.$http

这完全是依赖注入的整体思想。

官方微信
官方QQ群
31647020