使用Angular 2 RxJS使用服务器响应时出现的问题
我的spa使用Angular 2和asp.net核心web api。我正在尝试使用来自web api控制器的响应。我的Angular组件和asp.net控制器都托管在同一台本地服务器上。下面是我试图显示的数据的控制器类:使用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
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>