簡體   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