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
使用Angular 2 RxJS使用服务器响应时出现的问题_Angular_Asp.net Web Api_Rxjs - Fatal编程技术网

使用Angular 2 RxJS使用服务器响应时出现的问题

使用Angular 2 RxJS使用服务器响应时出现的问题,angular,asp.net-web-api,rxjs,Angular,Asp.net Web Api,Rxjs,我的spa使用Angular 2和asp.net核心web api。我正在尝试使用来自web api控制器的响应。我的Angular组件和asp.net控制器都托管在同一台本地服务器上。下面是我试图显示的数据的控制器类: public class SampleDataController : Controller { [HttpGet("[action]")] public string[] ShuttleTimes() { List<DateTi

我的spa使用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;
    }

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

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

{{shuttleTimes[0]}
测试文本

“测试文本”显示,但shuttleTimes数组中没有显示任何内容。特别奇怪的是,就在昨天,这对我来说很有效,而且在我意识到的情况下,没有做任何改变,就停止了工作。为了便于了解,我使用了一个已启动的工具包,其中使用Angular Universal进行服务器端预渲染和热模块替换(HMR)。我是一个新手,没有任何调试这种应用程序的经验,所以如果你能推荐一个调试工具和教程,我将不胜感激

我会先断开服务器,看看是否收到请求。@chrispy不确定你的意思。我在chrome中检查了页面,在网络下发现:请求URL:请求方法:获取状态代码:200 OK远程地址:[:::1]:5000另外,我们不知道请求已收到,因为*ngIf显示“测试文本”,这意味着shuttleTimes具有非空值,对吗?试着在订阅正文中做一个console.log,看看什么是穿梭机。像这样吗?getShuttleTimes():可观察的{let shuttle$=this.http.get(this.baseUrl).map(this.mapShuttles.do(x=>console.log(x));return shuttle$;}我将从这个.shuttleService.getShuttleTimes()开始。订阅(shuttles=>{console.log(shuttles);this.shuttleTimes=shuttles});
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);
}
}
<div *ngIf="shuttleTimes">
          {{shuttleTimes[0]}}
          Testing Text
        </div>