Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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
Html 递归/循环模板调用_Html_Templates_Typescript_Angular - Fatal编程技术网

Html 递归/循环模板调用

Html 递归/循环模板调用,html,templates,typescript,angular,Html,Templates,Typescript,Angular,我有一个Angular 2的设置,其中home.html有一个 调用,它依次调用某些小部件模板。 但是,这些小部件模板需要再次调用widgetcontainer,以便可以显示它们的子小部件 看起来有点像这样: home.html: <div> home site specific content </div> <ul> <widgetcontainer *ng-for="#widget of widgetList" [containerwidget]

我有一个Angular 2的设置,其中home.html有一个
调用,它依次调用某些小部件模板。 但是,这些小部件模板需要再次调用widgetcontainer,以便可以显示它们的子小部件

看起来有点像这样:

home.html:

<div> home site specific content </div>
<ul>
  <widgetcontainer *ng-for="#widget of widgetList" [containerwidget]="widget"></widgetcontainer>
</ul>
在儿童中,在我的例子中,小部件1和2。我也试过了,但还是出错了。将widgetcontainer导入widget.ts文件不会出现问题,将其添加到指令或将
调用添加到widget1或2的html中会中断程序并向我抛出错误消息:

例外情况:类型错误:本征值“长度”未定义或未定义。在[null]中

作为一个小小的翻译尝试:它基本上说

无法调用未定义或空引用的属性“length”。在[null]中

我也找不到错误的确切位置。考虑到它在不向widget1或2中的指令添加widgetcontainer的情况下工作,我想这就是整个问题的症结所在

以前我有一个类似的错误,虽然它不是
length
,而是表示调用
forEach
失败,但现在我无法复制该错误

从我所读到的关于这个问题的内容来看,
模板的循环引用/调用。虽然它需要一个停止条件才能不变成无限循环,但它应该可以工作。因此,我的widget1和2中已经有了
*ng if
条件,它已经通过子窗口小部件ID的简单列表进行了测试,并且作为一个条件工作得很好


现在的问题是我错在哪里?或者如何让循环调用正常工作?

我不认为您收到的错误是由此代码直接导致的。你没有一个带有错误的stacktrace来显示错误发生的位置吗?你能包括stacktrace指向的代码吗?奇怪的是,没有上面的代码,一切都正常运行。。。我不确定stacktrace的事,但我会调查的。不幸的是,这可能要等到明天。
<li>
  <div [ng-switch]="containerwidget.type">
    <p *ng-switch-when="1"><widget1 [widget]="containerwidget"></widget1></p>
    <p *ng-switch-when="2"><widget2 [widget]="containerwidget"></widget2></p>
    <p *ng-switch-default>Error in widget-data</p>
  </div>
</li>
<div> widget 1 or 2 specific content </div>
<div *ng-if="widget.widgetSubList">
  <div class="widget-sub-listing" *ng-for="#widget of widgetlocal.widgetSubList">
    <widgetcontainer *ng-for="#widget of widgetlocal.widgetSubList" [containerwidget]="widget"></widgetcontainer>
  </div> 
</div>
constructor( @Inject(forwardRef(() => widgetcontainer)) private _parent: widgetcontainer) { }