如何使用 browserify 在 angular js 中将 npm 包 lodash 作为 DI 传递给 angular-google-maps?
How to pass npm package lodash as a DI in angular js for angular-google-maps using browserify?
我正在使用 npm
作为我的 angular 应用程序的包管理器,并 Browserify
来包含库。
我正在使用 angular-google-maps 包:http://angular-ui.github.io/angular-google-maps
我得到:
ReferenceError: _ is not defined
at o (vendor.js:8)
at Object.load (vendor.js:8)
at $get (vendor.js:8)
at Object.r [as invoke] (vendor.js:1)
at vendor.js:1
at i (vendor.js:1)
at Object.r [as invoke] (vendor.js:1)
at p.instance (vendor.js:2)
at m (vendor.js:2)
at a (vendor.js:1)
作为错误。
现在这是我包含 js 文件的方式:
require('lodash');
require('angular-simple-logger');
require('angular-google-maps');
这就是我将它们注入 angular.module 的方式:
var requires = [
/*What to inject here?*/
'nemLogging',
'uiGmapgoogle-maps',
];
angular.module('mapApp',requires);
控制器中包含的内容:
angular.module('mapApp').controller('mapController',
function($scope, uiGmapGoogleMapApi, /*What to pass here?*/){
});
请指导在 angular 应用程序中注入什么以及将什么参数传递给我的 angular 应用程序以消除此错误?
您只需:
angular.module('mapApp', requires)
.value('_', _);
现在应该意味着您可以:
angular.module('myApp').controller('mapController', function ($scope, uiGmapGoogleMapApi, _) {
});
所以这是一个有效的 plnkr。可能是你做错了什么。
angular-google-maps
模块不使用 angular DI 注入 lodash,但假设 lodash 是全局可用的。通过将 lodash 添加到 window 对象来使 lodash 全局化:
window._ = require('lodash'); // this will add it to the global namespace
require('angular-simple-logger');
require('angular-google-maps');
我正在使用 npm
作为我的 angular 应用程序的包管理器,并 Browserify
来包含库。
我正在使用 angular-google-maps 包:http://angular-ui.github.io/angular-google-maps
我得到:
ReferenceError: _ is not defined
at o (vendor.js:8)
at Object.load (vendor.js:8)
at $get (vendor.js:8)
at Object.r [as invoke] (vendor.js:1)
at vendor.js:1
at i (vendor.js:1)
at Object.r [as invoke] (vendor.js:1)
at p.instance (vendor.js:2)
at m (vendor.js:2)
at a (vendor.js:1)
作为错误。
现在这是我包含 js 文件的方式:
require('lodash');
require('angular-simple-logger');
require('angular-google-maps');
这就是我将它们注入 angular.module 的方式:
var requires = [
/*What to inject here?*/
'nemLogging',
'uiGmapgoogle-maps',
];
angular.module('mapApp',requires);
控制器中包含的内容:
angular.module('mapApp').controller('mapController',
function($scope, uiGmapGoogleMapApi, /*What to pass here?*/){
});
请指导在 angular 应用程序中注入什么以及将什么参数传递给我的 angular 应用程序以消除此错误?
您只需:
angular.module('mapApp', requires)
.value('_', _);
现在应该意味着您可以:
angular.module('myApp').controller('mapController', function ($scope, uiGmapGoogleMapApi, _) {
});
所以这是一个有效的 plnkr。可能是你做错了什么。
angular-google-maps
模块不使用 angular DI 注入 lodash,但假设 lodash 是全局可用的。通过将 lodash 添加到 window 对象来使 lodash 全局化:
window._ = require('lodash'); // this will add it to the global namespace
require('angular-simple-logger');
require('angular-google-maps');