使用Angular 2 RxJS消耗服务器响应的问题

时间:2017-02-08 19:19:25

标签: angular asp.net-web-api rxjs

我的水疗中心使用Angular 2和asp.net核心web api。我正在尝试使用来自web api控制器的响应。我的Angular组件和asp.net控制器都托管在同一本地服务器上。这是我试图显示的数据的控制器类:

public class SampleDataController : Controller
{

    [HttpGet("[action]")]
    public string[] ShuttleTimes()
    {
        List<DateTime> times = new List<DateTime>();
        DateTime time = DateTime.Now;
        DateTime end = new DateTime(2017, 2, 8);

        while(time < end){
            times.Add(time);
            time = time.AddMinutes(20);
        }
        string[] convertedTimes = new string[times.Count];
        string toAdd;
        for (int i = 0; i < times.Count; i++)
        {
            toAdd = times[i].ToString();
            convertedTimes[i] = toAdd;
        }

        return convertedTimes;
    }

}

这是我的客户端服务:

export class ShuttleService{
private baseUrl: string = '/api/SampleData/ShuttleTimes';
constructor(private http : Http) {}

getShuttleTimes(): Observable<any>{
let shuttle$ = this.http
    .get(this.baseUrl)
    .map(this.mapShuttles)

    return shuttle$;
}

mapShuttles(response: Response): any {
return response.json();
}
}

这是我使用该服务的组件:

export class TestComponent implements OnInit {
futureShuttle: boolean;
shuttleTimes: string[];

constructor(private shuttleService: ShuttleService) {}

setFalse(){
    this.futureShuttle = false;
}

ngOnInit() { this.getShuttles(); }

getShuttles(){
    this.shuttleService.getShuttleTimes()
        .subscribe(shuttles => this.shuttleTimes = shuttles);
}
}

这是我的问题:我的TestComponent成员shuttleTimes将不会显示:

<div *ngIf="shuttleTimes">
          {{shuttleTimes[0]}}
          Testing Text
        </div>

显示“测试文本”,但没有来自shuttleTimes数组。特别奇怪的是,这对我来说只是昨天,而且我没有做任何改变,我已经停止了工作。如果知道有用,我在https://github.com/aspnet/JavaScriptServices/使用了一个启动工具包,它使用Angular Universal进行服务器端预渲染和热模块替换(HMR)。我很新,没有任何调试这样的应用程序的经验,所以如果你也可以推荐一个调试工具和教程,我会很感激。

0 个答案:

没有答案