小编the*_*lin的帖子

如何修复ChangeDetectorRef导入错误:ChangeDetectorRef没有提供程序

我在将ChangeDetectorRef导入到我的组件之一时遇到问题。

作为参考,族谱树为PComponent(父级)-> Options-Grid(子级)-> FComponent(孙级)。

这是我在浏览器中遇到的错误:

StaticInjectorError(AppModule)[FComponent -> ChangeDetectorRef]: 
  StaticInjectorError(Platform: core)[FComponent -> ChangeDetectorRef]: 
    NullInjectorError: No provider for ChangeDetectorRef!
Run Code Online (Sandbox Code Playgroud)

该错误带我到的代码行是在Grandparent组件(PComponent)中,它在其中实例化了第一个子组件(Options-Grid)。

<div>
    <options-grid></options-grid>
</div>
Run Code Online (Sandbox Code Playgroud)

我在构造函数中正确提供了ChangeDetectorRef并将其正确导入FComponent中。代码中的错误参考指向我实例化Options-Grid组件的PComponent html。

这是因为我没有在父组件中提供ChangeDetectorRef吗?

javascript angular2-changedetection angular

7
推荐指数
1
解决办法
4484
查看次数

如何对函数的返回值进行单元测试-Angular(Jasmine / Karma)

我想知道是否有一种方法可以正确测试Angular中函数的返回值。我想本质上测试一个测试的返回值是否为真,并编写另一个测试相反的情况。

Ts组件:

    get() {
        if (this.object == undefined) {
            return true;
        } else {
            return false;
        }    
    }
Run Code Online (Sandbox Code Playgroud)

我现在认为适合测试返回值的唯一方法是设置一个变量来保存返回值。下面是我的尝试,我只是坚持要说的是期望。

测试:

it('should call get function and return true', () => {
        //Arrange
        component.object = undefined;

        //Act
        component.get();

        //Assert
        expect(component.get). <-- *stuck here*

    });
Run Code Online (Sandbox Code Playgroud)

unit-testing jasmine karma-jasmine angular

3
推荐指数
1
解决办法
3835
查看次数