我的水疗中心使用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)。我很新,没有任何调试这样的应用程序的经验,所以如果你也可以推荐一个调试工具和教程,我会很感激。