Angular 子组件中的显示数据错误?有棱角的

Angular 子组件中的显示数据错误?有棱角的,angular,Angular,所有代码演示和行为都在这里: 这里不需要解释太多 查看stackblitz,打开第一行(单击该行)。您将看到该行的详细信息。单击第二行,第一行的详细信息将被第二行的详细信息覆盖 此处的示例视频(问题是什么): 代码示例: HTML代码如下: 没有工作的示例: <ng-container "> <div class="d-flex row my-1"> class="w-50"><

所有代码演示和行为都在这里:

这里不需要解释太多

查看stackblitz,打开第一行(单击该行)。您将看到该行的详细信息。单击第二行,第一行的详细信息将被第二行的详细信息覆盖

此处的示例视频(问题是什么):

代码示例:

HTML代码如下:

没有工作的示例:

  <ng-container ">
    <div class="d-flex row my-1"> 
        class="w-50"></app-child>
    </div>
  </ng-container>

我所说的不起作用在我执行http请求的代码中不起作用。在stackblitz演示中可以使用。

当您执行此任务时

public-getSingleDispatch(book:any){
this.singleDetailsDispatch=book;
}
您正在为所选书本分配所有子输入

您可以将
书籍
ngFor
直接传递给您的子组件(
dispatchDetails
):


我认为单个细节对象只能在一次只显示一个细节的情况下工作,如果要显示多个细节,应该保存该细节的多个数据。 使用httpRequest获取详细信息

// Inject httpClient or your service to make request. 

public getSingleDispatch(book: any) {
// to avoid to load same detail multimples time, if you already has details saved,
// you only make request if you dont load details previusly.

if( !this.singleDetailsDispatchMap[book.driver]) 
// make request , subscribe and access to response
    this.httpClient.get('http://myApi.test/'+book.driver)
     .subscribe(response => {
     this.singleDetailsDispatchMap[book.driver]=response;
})
  }


// html checking to book expanded and book details 
<ng-container *ngIf="book.expanded && !!singleDetailsDispatchMap[book?.driver]">
        <div class="d-flex row my-1">
          <app-child *ngIf="!!singleDetailsDispatchMap[book?.driver]" 
              [dispatchDetails]="singleDetailsDispatchMap[book?.driver]"
              [closedDetail]="detail"
            class="w-50"></app-child>
        </div>
      </ng-container>
订阅后,响应保存在地图中,使用驱动程序作为键,详细信息作为值,结构如下:

this.singleDetailsDispatchMap = {
"driver1": details1,
"driver2": details2
}
其中的值将是您希望在api中处理的值。 在模板中和评估时生成检查

* ngIf = "book.expanded && !! singleDetailsDispatchMap [book? .driver]"

它将被展开并在地图上显示值,然后它将显示我上面写的详细信息。我无法将这本书传递给函数,因为这本书没有所有的信息。当我使用getByID时,我只获取所有信息。这就是区别。我使用单击的id,因此根据id生成getById,http提供所有信息;我不知道怎么解释……但我不能把书托给孩子。我无法从http get REQUEST获取更多详细信息的新数据。。。。。这是唯一的例子。。我不能用我服务器上的http请求创建stackblitz…@Segma啊,我明白了。但这也相当简单。假设您的
getSingleDispatch
返回一个可观察的,您需要做的就是
[dispatchDetails]=“getSingleDispatch(book)| async”
我想在一本书中显示多个详细信息。SingleDetails Dispatch不存在。。singleDetailsDispatch是可变的是的,但在您的函数中,以获取书本的细节为例,我建议修改,将该属性附加到书本,我还建议使用map保存细节的其他方法在此处选中此项将不起作用。。。。。。如何解释getSingleDispatch我得到了新数据HTTP GET请求?这不是工作
this.singleDetailsDispatchMap = {
"driver1": details1,
"driver2": details2
}
* ngIf = "book.expanded && !! singleDetailsDispatchMap [book? .driver]"