当前位置: 首页 > 面试题库 >

AngularJS常数

黄仲渊
2023-03-14
问题内容

可以使用AngularJS将常量注入另一个常量吗?

例如

var app = angular.module('myApp');

app.constant('foo', { message: "Hello" } );

app.constant('bar', ['foo', function(foo) { 
    return { 
        message: foo.message + ' World!' 
    } 
}]);

我需要使用角度常数,因为我需要将其注入配置程序中。即

app.config(['bar', function(bar) {
    console.log(bar.message);
}]);

我知道您只能将常量和提供程序注入到配置例程中,并且我的理解是您可以将依赖项注入到提供程序中,但是,这似乎并不是这种情况下的最佳方法…

在此先感谢您的帮助!


问题答案:

没错,将foo和bar都注册为常量是不可能的。

同样,使用提供程序作为解决方法,除了必须将数据存储在提供程序实例中之外,您几乎可以理解:

var app = angular.module('myApp', []);

app.constant('foo', {
    message: 'Hello'
});

app.provider('bar', ['foo', function(foo) {
  this.data = {
    message: foo.message + ' World!'
  };

  this.$get = function() {
    return this.data;
  };
}]);

然后在配置块中,注入栏的提供程序实例(不是栏实例,因为它在配置阶段尚不可用):

app.config(['barProvider', function(barProvider) {
  console.log(barProvider.data.message);
}]);

希望这可以帮助。



 类似资料:
  • 问题内容: 据我了解的文档,常量和值之间的唯一具体区别是,可以在应用程序配置阶段使用常量,而值仅在运行阶段可用。 我很好奇为什么在这种情况下根本需要值?他们不是真的只限制了常量吗? 问题答案: 一个常数可以 注入到任何地方 。 装饰器不能截取常量, 这意味着常量的值永远不能更改 。 值与常量的不同之处在于,该值 不能注入配置中 , 但可以被装饰器截获 。

  • 问题内容: 我对angular非常陌生,但是我觉得这有点疯狂。 我在一个控制器作用域中通过ng- repeat显示了多个集合。每个列表都有一个输入字段,可以执行简单的查询。我在代码中使用各种过滤器,最后我在过滤器函数中添加了console.log。我意识到,每次我的过滤器函数被一个列表调用时,作用域中的所有列表都被调用。此外,它每次都调用两次filter函数。因此,对于3个集合,过滤列表之一将调用

  • 问题内容: 我可能在这里丢失了一些东西,但无法使此JSONP请求正常工作,这是代码: 该请求会触发,并且我收到以下格式的响应(带有标头Content-Type:application / json): 你看到什么错了吗?也许我应该从服务器返回的格式不对吗?Angular触发错误回调,除了我设置的错误消息外,没有任何错误消息(“错误”)。 问题答案: JSONP要求您将数据包装到JavaScript

  • 本文向大家介绍AngularJS 最常用的功能汇总,包括了AngularJS 最常用的功能汇总的使用技巧和注意事项,需要的朋友参考一下 AngularJS通过为开发者呈现一个更高层次的抽象来简化应用的开发。如同其他的抽象技术一样,这也会损失一部分灵活性。换句话说,并不是所有的应用都适合用AngularJS来做。AngularJS主要考虑的是构建CRUD应用。幸运的是,至少90%的WEB应用都是CR

  • 问题内容: 我刚刚开始从w3schools学习AngularJS 。我正在尝试练习教程中所提到的示例。一切正常,但是当我来到“ AngularJS Controllers”时,它在w3schools中无法正常运行,请尝试一下。我已将代码分叉到这个小提琴示例中。我的脚本如下所示: 尝试帮助我,并向我推荐一个很好的教程(或任何免费的pdf文件)。 问题答案: 这是你 纠正的小提琴 。 对于angula

  • 我是新来安格拉斯的。我试图通过$http post将一些数据发布到服务器。我的代码可以到达服务器,但数据无法传递。我使用golang作为后端。我在这里犯了什么错误? go代码: 输出: