在角控制器内使用下划线

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

如何在angularjs控制器中使用下划线库?

我的意思是,它应该在应用程序模块声明上进行吗?即:

var myapp = angular.module('offersApp', [])
            .config(['$rootScope', function($rootScope) { }

但是,在哪里加载下划线库呢?我只是在我的索引页,ng-app指令和脚本引用的角度-js和下划线库?

index.html:

<head>
</head>
<body ng-app="offersApp">
...
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="scripts/vendor/angular.js"></script>
<script src="scripts/vendor/underscore.js"></script>
...  

我如何做到这一点?

提问于
用户回答回答于

当您包含下划线时,它将自己附加到window对象,因此可以在全局范围内使用。

var underscore = angular.module('underscore', []);
underscore.factory('_', ['$window', function($window) {
  return $window._; // assumes underscore has already been loaded on the page
}]);

然后你可以问_在您的应用程序模块中:

// Declare it as a dependency of your module
var app = angular.module('app', ['underscore']);

// And then inject it where you need it
app.controller('Ctrl', function($scope, _) {
  // do stuff
});
用户回答回答于

使用它:

  1. 确保在项目中包含了underscore.js<script src="bower\_components/underscore/underscore.js">
  2. 得到它: 安装角下划线模块
  3. 将角-下划线-module.js添加到主文件(index.html)<script src="bower\_components/angular-underscore-module/angular-underscore-module.js"></script>
  4. 将模块作为依赖项添加到应用程序定义中 var myapp=angular.Module(‘MyApp’),“下划线”)
  5. 若要使用,请将其作为注入的依赖项添加到Controller/Service中,这样就可以使用 模块(‘MyApp’).控制器(‘MyCtrl’,函数($Scope)_){.//使用下划线_.每一个(...)

扫码关注云+社区