角度数据未加载

问题描述

当我从服务中获取数据时,Angular 也会进入“第一”位置。但是,没有点击页面上的任何按钮,它并没有进入我写“秒”的地方。

 GetAllVessels(){ 
      alert('first');
   this.AllVessels=this.http.get<Vessel[]>(this.baseUrl+'Vessel/GetAllVessels',httpOptions).pipe(
   map((result: Vessel[]) => {
     console.log(result);
     alert('second');
   return result;
   })
   ); 

解决方法

  1. 订阅由 <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> <table class="table"> <thead> <tr> <th>ID</th> <th>Course Code</th> <th>Course Title</th> <th>Course Campus</th> </tr> </thead> <tbody data-bind="foreach: gpCourseProp"> <tr class="table-dark"> <td></td> <td><span data-bind="text: gpCode"></span></td> <td><span></span></td> <td></td> </tr> <!-- ko foreach: courses --> <tr data-bind="css: { mutated: $parent.hide() == true }"> <td><span data-bind="text: id"></span></td> <td><span data-bind="text: courseCode"></span></td> <td><span data-bind="text: courseTitle"></span></td> <td><span data-bind="text: coursecampus"></span></td> </tr> <!-- /ko --> </tbody> </table> 在其上调用 http.get() 返回的 observable
  2. 将响应分配给 .subscribe() 方法内的 this.AllVessels
  3. 除非您真的打算存储订阅引用,否则不要存储 .subscribe() 的返回值

试试这个 -

http.get()

实际上可以清理到这个 -

GetAllVessels() {
        alert('first');
        this.http.get<Vessel[]>(this.baseUrl + 'Vessel/GetAllVessels',httpOptions)
            .pipe(
                map((result: Vessel[]) => {
                    console.log(result);
                    alert('second');
                    return result;
                }))
            .subscribe(
                p => this.AllVessels = p,e => console.log(e)
            );
    }