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

Angularjs中有没有办法用其他常量定义常量?

章岳
2023-03-14
问题内容

我正在尝试用其他常量定义常量,但似乎无法完成,因为当所需常量依赖于它时,初始常量尚未准备就绪。我想确定这是否完全不可能。

目前,我有这样的常量:

angular.module('mainApp.config', [])
    .constant('RESOURCE_USERS_DOMAIN', 'http://127.0.0.1:8008')
    .constant('RESOURCE_USERS_API', 'http://127.0.0.1:8008/users')
    // Specific routes for API
    .constant('API_BASIC_INFORMATION', RESOURCE_USERS_API + '/api/info')
    .constant('API_SOCIAL_NETWORKS', RESOURCE_USERS_API + '/api/social')
    ;

后两个常数是我想要完成的


问题答案:

定义控制器,服务和其他控制器之间的依赖关系的角度方法是通过依赖关系注入(DI)。因此,如果您有一个依赖于服务B的控制器A,则必须像这样创建它。

var myApp = angular.module("exampleApp",[]);

myApp.controller("aCtrl", function(serviceB){
    //Controller functionally here
});

可以看到,angular将检查serviceB依赖关系,并查找使用该名称创建的服务。如果不创建一个,则会出现错误。

因此,如果要创建一个依赖于常数B的常数A,则需要告诉angular
A依赖于B。但是常数不能具有依赖性。常量可以返回一个函数,但是DI对该常量不起作用。检查此小提琴,以便您可以了解DI适用于哪些方法。

因此,回答您的问题时,您无法使用其他常量定义常量。

但是您可以这样做:

angular.module('projectApp', [])
  .constant('domain','http://somedomain.com')
  .constant('api','/some/api/info')
  .service('urls',function(domain,api){ this.apiUrl = domain+api;})

  .controller('mainCtrl',function($scope,urls) {

      $scope.url = urls.apiUrl;

  });

检查此小提琴以查看其工作原理:

如果您想了解有关DI的更多信息,请查看这篇文章。

我希望这可以回答您的问题。



 类似资料:
  • 问题内容: 所以我想尝试http客户端 我的模块信息如下所示 但是我明白了 我真的不明白为什么。我的Java版本是“ build 9-ea + 169”,并且使用了最新版本的IntelliJ idea(2017.1.3)。我调查了这个答案,看来我只需要向文件中添加要求,但是由于某种原因它不起作用。 问题答案: 如果我用作启动参数,对我来说效果很好。 如果您说模块需要它,并不意味着它会被包括在内;默

  • 我试图使用Swagger UI来创建和部署我的文档以及我用Spring Boot编写的API。我知道Swagger提供了一些注释来帮助在实际的控制器类中编写文档,但是我很难让它们做我需要的事情。 我的问题是我有一个通用的DTO类,每次调用我的API都会返回。此 DTO 具有用于通用对象字段。如果我直接使用这些对象,我知道我可以使用类似的东西 以便给出对象的JSON表示应该是什么样子的规范。但是,因

  • 问题内容: 我在实现Runnable的类中的run()中调用的方法被设计为引发异常。 但是Java编译器不允许我这样做,建议我用try / catch包围它。 问题是,通过用try / catch包围它,我使 特定的 run()无效了。我 确实 想抛出该异常。 如果我指定的run()的本身,编译器会抱怨说。 通常,我对run()不会抛出异常完全满意 。但是,在我必须具有该功能的特殊情况下。 如何解

  • 我在实现Runnable的类的run()中调用的方法被设计为引发异常。 但是Java编译器不允许我这样做,建议我用try/catch来围绕它。 问题是,通过使用try/catch将其包围,我使特定的run()变得无用。我确实想抛出该异常。 如果我为run()本身指定了throws,编译器会抱怨异常与Runnable中的throws子句不兼容。run()。 通常情况下,我完全可以不让run()抛出异

  • 我是一名学生,我想知道是否有一种方法可以将一个变量从它的范围块中取出,用于本地范围?我正在尝试对一个商店进行编码,在那里用户可以选择他们想要购买什么,他们想要购买多少,并给他们同一商品的总付款。现在在块范围之外,我想给出他们购买每件商品的总金额。这是我的代码: 感谢:

  • 问题内容: 我想将背景URL存储在自定义属性(CSS变量)中,并将其与background属性一起使用。但是,当使用字符串作为参数时,我找不到插值的方法。 这是我的示例代码: 我知道可以使用插值函数在Sass或LESS中轻松完成此操作,但我很好奇是否有一种无需任何预处理器的方法。 问题答案: 您可以使用大多数CSS函数执行插值,包括的示例。实际上,插值是自定义属性的主要功能之一。 但是,您不能使用