Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 角度2意外的指令值';未定义';_Typescript_Angular_Components - Fatal编程技术网

Typescript 角度2意外的指令值';未定义';

Typescript 角度2意外的指令值';未定义';,typescript,angular,components,Typescript,Angular,Components,我有两个组件,我想在另一个组件中重复使用一个,所以这是我想重复使用ExpressionBuilderComponent的组件: @Component({ selector: 'expression-builder', template: ` <div class="container"> <expression *ngFor="#expression of expressions" [prototypes]="prototy

我有两个组件,我想在另一个组件中重复使用一个,所以这是我想重复使用ExpressionBuilderComponent的组件:

@Component({
    selector: 'expression-builder',
    template: `
        <div class="container">
           <expression *ngFor="#expression of expressions" [prototypes]="prototypes" [expression]="expression" [expressions]="expressions"></expression>
           <a class="btn btn-primary" (click)="addExpression()"><i class="glyphicon glyphicon-plus"></i></a>
        </div>
    `,
    directives: [ExpressionComponent]
})
@组件({
选择器:“表达式生成器”,
模板:`
它应该显示Test两次,因为我使用了
两次

在我的项目中,它显示为一个空元素,在此屏幕截图中,您可以看到它是如何渲染出来的:

有人能帮我解决这个问题吗?在这种情况下,它是如何工作的


如果从指令中删除
ExpressionBuilderComponent
,错误将消失:

@Component({
    selector: 'expression',
    ...
    //    directives: [ExpressionBuilderComponent]
})
export class ExpressionComponent implements OnInit {
如果有必要,我不知道解决方案。TypeScript中类之间的循环依赖关系只能使用接口来解决,我不知道如何使用
指令


顺便说一句:这就是你的Plunker应该是什么样子。这是一个可以重现问题的小例子。你添加了许多与问题完全无关的代码。

如果你从指令中删除
ExpressionBuilderComponent
,错误就会消失:

@Component({
    selector: 'expression',
    ...
    //    directives: [ExpressionBuilderComponent]
})
export class ExpressionComponent implements OnInit {
如果有必要,我不知道解决方案。TypeScript中类之间的循环依赖关系只能使用接口来解决,我不知道如何使用
指令



顺便说一句:这就是你的Plunker应该是什么样子。这是一个可以重现问题的最小示例。你添加了许多与问题完全无关的代码。

首先,你需要通过编写
指令:[ExpressionBuilderComponent]来引用
ExpressionBuilderComponent
。之后,在组件树的下一步,您应该编写
指令:[forwardRef(()=>ExpressionBuilderComponent)]
如果你想再次引用它。你试过了吗?作为一个模板开始。Plunker似乎又开始工作了。@GünterZöchbauer你能帮我解决这个错误吗?我得到了这个错误,但不知道为什么他在那一点上失败了?
在Token Promise的实例化过程中出错了!
如果没有其他方法,那么这就是最有效的方法高效方式;-)首先,您需要通过编写
指令[ExpressionBuilderComponent]
来引用
ExpressionBuilderComponent
。然后,在组件树的下一步,您应该编写
指令:[forwardRef(()=>ExpressionBuilderComponent)]
如果你想再次引用它。你试过了吗?作为一个模板开始。Plunker似乎又开始工作了。@GünterZöchbauer你能帮我解决这个错误吗?我得到了这个错误,但不知道为什么他在那一点上失败了?
在Token Promise的实例化过程中出错了!
如果没有其他方法,那么这就是最有效的方法高效的方法;-)对不起,伙计,我想你可以有一个更好的概述,这样我就不会忘记要提到的东西。阅读和理解你不知道的代码的目的,并找出这些代码中的哪些可能与问题有关。如果你报告了一个问题,试着在kee的时候尽可能多地删除代码ping实际问题是可复制的。您将在更短的时间内得到更好的响应。好的,谢谢您的提示,我将在将来记住:)因此您现在不知道此问题的任何解决方案?如何从
ExpressionComponent
中的
指令
中删除
ExpressionBuilderComponent
?我看不出是什么原因你需要它。好的,但是它的组件选择器是空的,没有显示我想要的模板。对不起,我想你可以有一个更好的概述,这样我就不会忘记要提到的东西。阅读和理解你不知道的代码,并找出这段代码中哪些可能与e问题。如果您报告一个问题,请在保持实际问题可复制性的同时,努力删除尽可能多的代码。您将在更短的时间内获得更好的响应。好的,谢谢您的提示,我将在将来记住:)所以您现在不知道此问题的任何解决方案?删除
ExpressionBuilderCompo怎么样来自
ExpressionComponent
中的
指令的NTT
?我不明白您为什么需要它。好的,但它的组件选择器是空的,没有显示我想要的模板。