[英]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.