页面在角度2上与点网核心2.0

时间:2018-01-22 19:12:41

标签: angular typescript .net-core

我有一个dotnet core 2.0angular 2应用,可以让我查看会员详细信息。首先,我有一个列表页面,显示sql server数据库中的所有成员。然后每个成员都有一个链接,让我可以单独查看详细信息。我有member.service.ts提供服务。问题是,当我刷新details-member.component.html页面时,服务器会继续旋转并且不返回任何值。我唯一的错误是"firstName" is not defined。但是,如果没有刷新,一切正常。

member.service.ts

import { Http } from '@angular/http';
import { Injectable } from '@angular/core';
import 'rxjs/add/operator/map';

@Injectable()
export class MemberService {

constructor(private http: Http) { }

getAllMembers(){
    return this.http.get('/api/members').map(res => res.json());
}

getMember(id:any){
    return this.http.get("/api/members/" + id).map(res => res.json());
}
}

细节-member.component.ts

import { Component, OnInit } from '@angular/core';
import { MemberService } from '../../../services/member.service';
import { ActivatedRoute, Router } from '@angular/router';

@Component({
   selector: 'app-details-member',
   templateUrl: 'details-member.component.html'
})

export class DetailsMemberComponent implements OnInit {
   member: any;
   memberId:number;

constructor(
    private route: ActivatedRoute,
    private router: Router,
    private memberService: MemberService,
) { 
    route.params.subscribe(p => {
        this.memberId = +p['id'];
        if (isNaN(this.memberId) || this.memberId <= 0) {
          router.navigate(['/member/list-members']);
          return; 
        }
      });
}

ngOnInit() { 
    this.memberService.getMember(this.memberId)
    .subscribe(
      v => this.member = v,
      err => {
        if (err.status == 404) {
          this.router.navigate(['/members/list-members']);
          return; 
        }
      });
    }
}

细节-member.component.html

<div class="page-header clearfix detailHeading">
    <h1 class="text-muted">Demographic Details</h1>
</div>

<div class="jumbotron">
    <div class="row">
        <div class="col-md-6">
            <p>Full Name : <b>{{ member.firstName }} {{ member.middleName }} 
{{ member.lastName }}</b></p>
        <p>Gender : <b>{{ member.gender }}</b></p>
        <p>Date of Brith : <b>{{ member.dateOfBirth | date }}</b></p>
        <p>Age : <b>{{ member.dateOfBirth | age }}</b></p>
        <p>Race : <b>{{ member.race }}</b></p>
        <p>Education : <b>{{ member.education }}</b></p>
        <p>Address : <b>{{ member.address }}</b></p>
        <p>Emergency Contact Name : <b></b></p>
        <p>Emergency Contact Address : <b></b></p>
        <p>Emergency Contact Phone : <b></b></p>
    </div>
        <div class="col-md-6">
            <hr>
            <div class="alert alert-warning" role="alert">
                Created : <b>{{ member.createdDate | date:'medium' }} by {{ member.createdBy }}</b>
            </div>
            <div class="alert alert-warning" role="alert">
                Last Update : <b>{{ member.updatedDate | date:'medium' }} by {{ member.updatedBy }}</b>
            </div>
        </div>

</div>

我收到的确切错误是:fail: Microsoft.AspNetCore,NodeServices[0] ERROR TypeError: Cannot read propery 'firstName' of undefined。 同样,只有在刷新详细信息页面时才会出现问题。

1 个答案:

答案 0 :(得分:0)

我仍然不知道导致此问题的原因,但我通过在ssmtp = "/usr/sbin/ssmtp" args = [ssmtp, '-v', '-v', '-v', '-C', '/etc/ssmtp/ssmtp-locrelay.conf', to_address]文件中更改(在x前面添加asp-prerender-module)以下标记来解决问题。

index.cshtml