首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >不能实例化循环依赖关系!ApplicationRef ("[ERROR ->]"):在./ AppModule @-1:-1中的NgModule AppModule中

不能实例化循环依赖关系!ApplicationRef ("[ERROR ->]"):在./ AppModule @-1:-1中的NgModule AppModule中
EN

Stack Overflow用户
提问于 2017-09-26 22:42:57
回答 3查看 11K关注 0票数 15

我已将此代码添加到我的app.module.ts中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    providers: [ AppConfigService,
            {
                provide: APP_INITIALIZER,
                useFactory: (config: AppConfigService) => () => config.getAppConfig(),
                deps: [AppConfigService],
                multi: true
            },
]

获取此错误

发布:我已经使用ngx-许可 pkg作为许可。我设置了路由权限方法。但是当我刷新一个页面时,那个时间重定向在主页上,而不是停留在当前页面上。所以我试着用在应用程序启动方法之前加载权限来解决这个问题,但是得到了这个错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 config.getAppConfig() // call when application start up

有什么想法请帮帮忙。其他解决办法也值得欢迎。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-15 03:50:29

我用这个解决办法解决了我的问题

在app.module.ts中创建函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export function loadConfig(appService: AppConfigService): Function {
    return () => appService.getAppConfig();
}

 AppConfigService,
        {
            provide: APP_INITIALIZER,
            useFactory: loadConfig,
            deps: [AppConfigService],
            multi: true
        },

issue into `HttpInterceptor` so i used injector for that
constructor(private inj: Injector) {
        super(
            inj.get(XHRBackend),
            inj.get(RequestOptions)
        );
}
票数 7
EN

Stack Overflow用户

发布于 2019-10-16 02:24:05

当您的APP_INITIALIZER中的依赖项依赖于角服务(例如Router )时,可能会发生此错误。

该解决方案是惰性注入,方法是将服务的构造函数改为接受Injector,然后解析构造函数外的值。

示例AppConfigService

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { Injectable, Injector } from '@angular/core';
import { Router } from '@angular/router';

@Injectable({
  providedIn: 'root'
})
export class AppConfigService {

  // Helper property to resolve the service dependency.
  private get _router() { return this._injector.get(Router); }

  constructor(
    //private _router: Router
    private _injector: Injector
  ) { }

  navigate() {
    this._router.navigate(['/']);
  }
}
票数 26
EN

Stack Overflow用户

发布于 2021-07-29 04:14:34

我也有同样的问题来动态更新路由。

实际上,您不必手动注入依赖项。你所要做的就是分裂周期。首先解决依赖关系,然后使用它们。

这里是一个路由器的例子,但你可以设置任何你喜欢的依赖。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// AppModule
{
  provide: APP_INITIALIZER,
  useFactory: myFactoryUpdatingRoutes, // init routes from special config
  multi: true,
  deps: [MyRouterLoader],
},

配置类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Injectable({
  providedIn: 'root',
})
export class MyRouterLoader{
  // MyRouterLoader prevents cyclic dependencies.
  // Router cannot be part of "deps" of AppModule's APP_INITIALIZER
  // so we have to split dependencies resolving
  constructor(private router: Router,
              private routeConfig: MySpecialRoutesConfig) { }

  // actually update routes
  public injectSpecialRoutes() {
    this.router.resetConfig([
      {
        path: this.routeConfig.urls['my-home-url-key'],
        component: HomeComponent
      },
      {
        path: this.routeConfig.urls['my-admin-url-key'],
        component: AdminComponent
      },
      {
        path: '**',
        redirectTo: '/',
      }
    ])
  }
}

export function myFactoryUpdatingRoutes(myRouterLoader: MyRouterLoader) {
  myRouterLoader.injectSpecialRoutes();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46441139

复制
相关文章
Windows下使用海康相机SDK获取图像并在Qt显示
点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,可以点个在看,让它可以帮助到更多同志
用户5908113
2020/03/11
5.2K2
Windows下使用海康相机SDK获取图像并在Qt显示
使用QT显示OpenCV读取的图片
OpenCV自带了一部分常用的GUI功能,但是更多的图像处理功能需要其他GUI框架来辅助实现,这里通过QT来显示OpenCV读取的图片。
charlee44
2020/02/25
4.2K0
使用QT显示OpenCV读取的图片
QT应用编程: 使用qcustomplot显示动态曲线、设计心电图显示页面
完整项目源码下载链接: https://download.csdn.net/download/xiaolong1126626497/18607424
DS小龙哥
2022/01/07
3.7K0
QT应用编程: 使用qcustomplot显示动态曲线、设计心电图显示页面
Qt显示Hello World
#include "widget.h" //对于 Qt 程序来说,GUI 程序是QApplication //非 GUI 程序是QCoreApplication。QApplication派生自QCoreApplication #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication a(argc, argv); //创建一个应用程序对象,该对象有且仅有一个
zy010101
2020/04/08
5730
Qt显示Hello World
matlab使用缩放颜色显示图像-imagesc
imagesc(C) 将数组 C 中的数据显示为一个图像,该图像使用颜色图中的全部颜色。C 的每个元素指定图像的一个像素的颜色。生成的图像是一个 m×n 像素网格,其中 m 和 n 分别是 C 中的行数和列数。这些元素的行索引和列索引确定了对应像素的中心。
用户9925864
2022/12/16
2.3K0
matlab使用缩放颜色显示图像-imagesc
Qt加载XPM图像
❝XPM是一种基于ASCII编码的图像格式,一般用于创建图标。由于它是ASCII编码,很方便地在代码中使用。 ❞   Qt的QPixmap类支持XPM格式,原型如下: QPixmap::QPixmap(const char *const [] xpm)   摘取Qt源码中的"严重警告"XPM图标: static const char* const critical_xpm[]={ "32 32 4 1", ". c None", "a c #999999", "* c #ff0000", "b c #ff
Qt君
2020/05/08
1.4K0
Qt加载XPM图像
opencv显示图像
如果说我们在些项目的过程中会频繁的查看我们的图片,我们就可以直接给它封装一个方法:
淼学派对
2023/10/14
2200
opencv显示图像
Qt显示视频流——(三)
之前的两次我们已经搭建好了nginx+rtmp服务和ffmpeg推流工具,本次进行最后一步结合Qt显示视频流。
用户5908113
2019/08/23
3.2K0
Qt显示视频流——(三)
c#利用Halcon的图像显示控件显示图像
?
vv彭
2020/10/27
2.9K0
c#利用Halcon的图像显示控件显示图像
QT+QT creator+OpenCV图像灰度化
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115569.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/10
4660
Android JetPack组件CameraX使用及修改显示图像
好久没用Kotlin写Android的代码了,刚开始写起来还有点生,不过适应了一阵也算是恢复过来了。今天这篇主要是说说Android JepPack组件中CameraX的使用,其实网上也有不少简单的例子,本篇也是参考了网的一篇文章后实现的。主要要说的还是后面,怎么在原有的图像上进行编辑显示,文末有源码的链接。
Vaccae
2020/12/17
2.6K0
Android JetPack组件CameraX使用及修改显示图像
使用opencv读入并显示一幅彩色图像,灰度化并显示,用canny算子得到图像边缘并显示
要求步骤: 1.读入彩色图像,并显示; 2.将彩色图像灰度化,并显示; 3将灰度图像,用Canny边缘算子得到图像边缘,并显示。
川川菜鸟
2021/10/18
1.2K0
图像特效显示(下)
移动是将图像看作一个整体,显示时不能像扫描那样,扫描方式有些像打开一副画,例如显示上部分的时候,下部分可以不现实,而移动则可以看成一块木板画,显示时必须按物理顺序进行,例如从上向下平移时,必须先显示下面的图像,后显示上面的图像,因此平移的算法比扫描难一些。
周旋
2022/08/07
9630
图像特效显示(下)
图像特效显示(上)
准备11月份更一个新的系列,之前看的杨淑莹老师的《数字图像处理Visual Studio C++技术实现》,里面的代码都没来得及打,而且其是基于自定义的图像类实现的,这个系列就把所有例程移植为opencv-C++实现,也就是算法逻辑用C++实现,图像对象使用opencv自带的图像类。
周旋
2022/08/07
1.1K0
图像特效显示(上)
QT应用编程: 使用QTAV得到解码视频每帧图像
参考博客: https://blog.csdn.net/xiaolong1126626497/article/details/112209279
DS小龙哥
2022/01/07
1.1K0
QT应用编程: 使用QTAV得到解码视频每帧图像
【图像篇】OpenCV图像处理(二)---图像读取与显示
在上一篇文章中,我们简要介绍了图像的基础知识,包括图像彩色通道,像素,分辨率等知识,学会这些东西,我们才能更好的理解图像处理的各种操作,今天,我们将会用上一篇文章(【图像篇】opencv图像处理(一)---图像基础知识)提到的工具--OpenCV,并用python语言调用OpenCV接口来进行实际的代码操作,一起来看看吧!
用户5410712
2022/06/01
1.1K0
【图像篇】OpenCV图像处理(二)---图像读取与显示
QT学习之如何使用Qthread(moveToThread方法)
通常在程序中需要同时做好几件事情,这时不可避免的会涉及到多线程的学习,QT学习过程中亦是如此,而QT中提供了 QThread,因为涉及到信号与槽,线程的使用也有些变化。在QThread的文档中有两种使用方法。
嵌入式小屋
2022/04/27
5K0
QT学习之如何使用Qthread(moveToThread方法)
点击加载更多

相似问题

如何使用Qt显示图像

15

使用Qt显示灰度图像

34

Qt不显示图像

23

Qt jpg图像显示

60

Qt -使用QOpenGLWidget显示图像的步骤

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文