繁体   English   中英

良好的做法是在角度中使用全局对象

[英]Good practice to use global objects in angular

我正在使用带有angular的nw.js框架创建桌面应用程序。 在我的控制器,服务等中,我经常使用如下的Node.js模块:

module.exports = function(ngModule) {
    ngModule.service('User', ['$q', function ($q) {
        var self = this;
        var fs = require('fs');
        var path = require('path');
        var gui = require('nw.gui');
    }]);
};

这是一个好习惯吗? 还是更好地创建一些服务或将模块放入$ rootScope

通常, require不应保留在服务构造函数中(除非它们是有条件的):

var fs = require('fs');
var path = require('path');
var gui = require('nw.gui');

ngModule.service('User', ['$q', function ($q) {
  ...
}]);

上面的代码将要求使用诸如proxyquire程序包来模拟Node模块并proxyquire测试服务。

DI应该为应用程序带来额外的灵活性和可测试性。 将依赖项放在可以轻松进行存根的单独模块中通常是解决此问题的首选方法:

angular.module('node', [])
.constant('gui', require('nw.gui'))
...

...

angular.module('app', ['node'])
.service('User', function ($q, gui, ...) {
  ...
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM