标签: circular-dependency

将$ http注入角度工厂($ exceptionHandler)会导致循环依赖

当我尝试将$ http注入到重写的工厂时,我得到错误:

未捕获错误:[$ injector:cdep]找到循环依赖项:$ http < - $ exceptionHandler < - $ rootScope

AngularModule.factory('$exceptionHandler',  function ($http) {
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决?如果我使用[]注入,$ http是未定义的

edit_ _ __ _ __ _ __ _ __ _ __ _ _

根据下面的答案,我试过:

MyModule.config(function($provide, $http) {
    $provide.decorator("$exceptionHandler", function($delegate) {
        return function(exception, cause) {..
Run Code Online (Sandbox Code Playgroud)

但我仍然得到循环错误:

未捕获错误:[$ injector:cdep]找到循环依赖项:$ http < - $ exceptionHandler < - $ rootScope

circular-dependency angularjs

17
推荐指数
1
解决办法
7922
查看次数

browserify如何处理循环依赖?

我正在考虑将一个基于浏览器的大型代码库移到CommonJS(它是一个用TypeScript编写的AngularJS 1.x应用程序).该应用程序具有循环依赖性,因此我认为RequireJS是不可能的.

Browserify如何处理循环依赖?是否存在不同类型的循环依赖关系?或者使用CommonJS/Browserify处理循环依赖的任何提示?

circular-dependency commonjs browserify

17
推荐指数
1
解决办法
641
查看次数

Dart/Flutter 中的依赖关系图?

有没有办法查看我的颤振项目中的包如何相互依赖?在包下,我的意思是内部包:“lib”下的文件夹。此外,检查包之间的循环依赖关系会很棒。

dependencies circular-dependency flutter

17
推荐指数
3
解决办法
3914
查看次数

编译循环依赖关系如何工作?

我用Java编写了这个例子,但我认为(未经测试)它可以在其他(所有?)语言中使用.

你有2个文件.首先,M.java:

public class MType {
    XType x;
    MType() {x = null;}
}
Run Code Online (Sandbox Code Playgroud)

第二,另一个文件(在同一目录中)XType.java,:

public class XType {
   MType m;
   public XType(MType m) {this.m = m;}
}
Run Code Online (Sandbox Code Playgroud)

好吧,这是糟糕的编程,但如果你运行javac XType它编译:编译甚至MType因为XType需要它.但...... MType需要XType......这是如何运作的?编译器如何知道发生了什么?

我想知道编译器(javac或你知道的任何其他编译器)如何管理这种情况,而不是如何避免它.

我问,因为我正在写一个预编译器,我想管理那种情况.

compiler-construction circular-dependency

16
推荐指数
1
解决办法
2368
查看次数

Python相互依赖的类(循环依赖)

我搜索了很多,但我发现的主要是python中递归编程的例子.所以这里有一个问题:

我怎样才能做到这一点?

class A:
    b = B()

class B:
    a = A()
Run Code Online (Sandbox Code Playgroud)

python class circular-dependency

16
推荐指数
1
解决办法
2365
查看次数

是否可以在没有循环导入的模块中导入烧瓶配置值?

我正在使用带有蓝图的Flask来获取我的网站的骨架,我在使用我的应用程序深层配置类时遇到了问题.

这是一些虚拟代码,解释了我如何设置一切:

websiteconfig.py

class Config(object):
  pass

class ProductionConfig(Config):
  DEBUG = False

class DevelopmentConfig(Config):
  DEBUG = True
Run Code Online (Sandbox Code Playgroud)

website/__ init __.py:

# Some app code and config loading
app = Flask('website')
app.config.from_object('websiteconfig.DevelopmentConfig')

# Import some random blueprint
from website import users
app.register_blueprint(users.api)

# This works:
# print app.config['DEBUG']
Run Code Online (Sandbox Code Playgroud)

website/users/__ init __.py:

from flask import Blueprint
from website.users.models import test
api = Blueprint('users', __name__, url_prefix='/users')

# This works:
# print api.config['DEBUG']

# From models
print test()
Run Code Online (Sandbox Code Playgroud)

website/users/models.py:

# How can …
Run Code Online (Sandbox Code Playgroud)

python python-module circular-dependency flask

16
推荐指数
1
解决办法
5614
查看次数

三规则的例外情况?

我已经阅读了很多关于C++ 三规则的内容.很多人都发誓.但是当规则被陈述时,它几乎总是包括像"通常","可能"或"可能"这样的词,表示存在例外.我没有看到很多关于这些例外情况的讨论 - 三法则不成立的情况,或者至少在坚持它的情况下没有提供任何优势的情况.

我的问题是我的情况是否是三法则的合法例外.我相信在我下面描述的情况下,需要一个明确定义的复制构造函数和复制赋值运算符,但默认(隐式生成的)析构函数将正常工作.这是我的情况:

我有两个类,A和B.这里讨论的是A. B是A的朋友.A包含B对象.B包含一个A指针,用于指向拥有B对象的A对象.B使用此指针来操纵A对象的私有成员.除了A构造函数之外,B永远不会被实例化.像这样:

// A.h

#include "B.h"

class A
{
private:
    B b;
    int x;
public:
    friend class B;
    A( int i = 0 )
    : b( this ) {
        x = i;
    };
};
Run Code Online (Sandbox Code Playgroud)

和...

// B.h

#ifndef B_H // preprocessor escape to avoid infinite #include loop
#define B_H

class A; // forward declaration

class B
{
private:
    A * ap;
    int y;
public:
    B( A * a_ptr = 0 ) {
        ap …
Run Code Online (Sandbox Code Playgroud)

c++ circular-dependency copy-constructor rule-of-three

16
推荐指数
1
解决办法
1057
查看次数

目标C - 错误:'预期类型'

我对一些我认为简单的事情有一个非常奇怪的错误.

#import <Foundation/Foundation.h>
#import "ViewController.h"
#import "GameObject.h"


@interface GameController : NSObject 

@property (strong) GLKBaseEffect * effect;
@property (strong) NSMutableArray * gameObjects;
@property (strong) NSMutableArray * objectsToRemove;
@property (strong) NSMutableArray * objectsToAdd;


+ (GameController *) sharedGameController;
- (void) tick:(float)dt;
- (void) initializeGame: (ViewController*) viewcontroller;//ERROR: EXPECTED A TYPE

- (void) createObject:(Class) objecttype atPoint:(CGPoint)position;
- (void) deleteObject:(GameObject*) object atPoint:(CGPoint)position;
- (void) manageObjects;

@end
Run Code Online (Sandbox Code Playgroud)

为什么会问'ViewController'是否是一个类型?这是我正确实施的课程.它也被导入了.

编辑*

如果它有帮助,这是ViewController.m类.

#import "ViewController.h"

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[GameController sharedGameController] initializeGame:self];
}

@end
Run Code Online (Sandbox Code Playgroud)

编辑2 ** …

import objective-c circular-dependency header-files forward-declaration

16
推荐指数
1
解决办法
2万
查看次数

导出命名空间后的所有内容都未导出吗?

我正在阅读有关模块的内容,我希望这样做:

a.cpp

module foo.a;

export namespace foo {
    struct A {
        void doA();
    };
}

import foo.b;
void foo::A::doA() {
     B{}.doB();
}
Run Code Online (Sandbox Code Playgroud)

b.cpp

module foo.b;

export namespace foo {
    struct B {
        void doB();
        void start();
    };
}

import foo.a;
import std.io;
void foo::B::doB() {
     std::cout << "Stuff done!" << std::endl;
}

void foo::B::start() {
     A{}.doA();
}
Run Code Online (Sandbox Code Playgroud)

main.cpp中

import foo.b;

int main() {
    foo::B{}.start();
}
Run Code Online (Sandbox Code Playgroud)

由于模块接口不能互相使用,为了使其工作,导出的命名空间之后的所有内容都不能成为接口的一部分.根据目前的TS,上述是否正确?对于实现中的循环依赖,是否需要将其拆分为另一个文件?

c++ circular-dependency language-lawyer c++-modules

16
推荐指数
1
解决办法
919
查看次数

解决Clojure循环依赖关系

我的工作有不同的命名空间之间的一些循环依赖一些Clojure的代码,我试图找出解决这些问题的最佳途径.

  • 基本问题是我在其中一个文件中得到"No such var:namespace/functionname"错误
  • 我试图"声明"该函数,但后来抱怨:"不能引用不存在的合格var"
  • 我当然可以重构整个代码库,但是每次你有一个依赖关系来解决这个问题似乎都是不切实际的.....并且对于某些循环依赖的网络可能会变得非常难看
  • 我可以将一堆接口/协议/声明分离到一个单独的文件中,并且所有内容都引用了....但是这似乎最终会变得混乱并破坏我所拥有的相关功能的当前漂亮的模块化结构一起

有什么想法吗?在Clojure中处理这种循环依赖的最佳方法是什么?

clojure circular-dependency

15
推荐指数
3
解决办法
6669
查看次数