首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使动量在Angularjs中不是全局变量(如果可能的话)

问如何使动量在Angularjs中不是全局变量(如果可能的话)
EN

Stack Overflow用户
提问于 2015-12-15 02:57:20
回答 2查看 1.1K关注 0票数 5

当我阅读Angularjs风格指南Y240时,我感到很困惑。

它讨论了为供应商库的全局变量创建一个角常数,以便我们可以注入否则是全局的供应商库。

我的理解是你必须这样做:

代码语言:javascript
复制
<script src="moment.js"></script>

在加载angular.js和app.js中的控制器和指令之前,矩对象是一个全局变量。如何使用以下代码使其成为服务,并在需要时注入它?

如果我没有看到全貌,请纠正我。

代码语言:javascript
复制
// constants.js

/* global toastr:false, moment:false */
(function() {
    'use strict';

    angular
        .module('app.core')
        .constant('toastr', toastr)
        .constant('moment', moment);
})();

我的困惑:上面的代码应该使全局变量“瞬间”不再是全局的。这是正确的吗?我认为这是不可能的。时刻仍然是全局变量。

EN

回答 2

Stack Overflow用户

发布于 2015-12-15 03:13:36

要在AngularJS应用程序中使用这样创建的常量:

代码语言:javascript
复制
//declare 'app.core' as a dependency
angular.module('myApp', ['app.core']);

//declare the constant in your injection list
angular.module('myApp').controller('myController', ['$scope', 'moment',
    function($scope,moment) {
        //use moment as you would normally
        var now = moment();
}]);

更新

moment仍然是一个全局变量。

约翰·爸爸这么做的原因是:

为什么?:提供了一种注入否则是全局的供应商库的方法。这使您能够更容易地了解组件的依赖关系(避免泄漏抽象),从而提高了代码的可测试性。它还允许您模拟这些依赖项,在有意义的地方。

https://github.com/johnpapa/angular-styleguide#style-y240

票数 0
EN

Stack Overflow用户

发布于 2015-12-15 20:38:34

我想也许他们只是想用

要求

或

褐化

因此,当加载lib时,它位于本地作用域的函数(){}中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34280389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档