【问题标题】:can't switch status value from 0 to 1 after calling function angular调用函数角度后无法将状态值从 0 切换到 1
【发布时间】:2018-05-16 10:19:25
【问题描述】:

我正在使用 Angular 5 开发前端应用程序,并使用后端的 rest api。实际上,我正在开发管理平台,我有两个网页,一个用于显示客户列表,每个都有反馈列表,另一个让您了解具体的反馈详细信息。

反馈详细信息显示以下属性:accountfeedback 本身和loyalty point(如果存在)。 有两种方法,如果反馈有其忠诚度积分,则反馈详细信息将显示具有忠诚度积分值的详细信息,否则将显示该属性的空输入,如果输入成功,它将返回主列表,并更改值 @ 987654324@ 的反馈从假到真。

我正在使用 rest api,对于这个操作,我成功地测试了 API:

API: PATCH /Feedbacks/:id 

这是我的代码:

account.service.ts:

    @Injectable()
    export class AccountService {

      constructor(private http: Http) {}

      headers: Headers = new Headers({ 'Content-Type': 'application/json' });
      options: RequestOptionsArgs = new RequestOptions({headers: this.headers});

    // API: PATCH /Feedbacks/:id
      updateStatus(feedback: Feedback) {
        let url = "http://localhost:3000/api/Feedbacks";
        return this.http.patch(url + feedback.id, feedback, this.options)
        .map(res => res.json())
        .catch(err => {
          return Observable.throw(err)
        });
      }
    }

component.html:

<form *ngIf="feedback">
        <div class="form-group">
          <label for="InputAccount">Account</label>
          <input type="text" class="form-control" id="InputAccount" value="{{feedback.account}}">
        </div>
        <div class="form-group">
          <label for="InputFeedback">Feedback</label>
          <textarea class="form-control" id="InputFeedback" rows="3" placeholder="Feedback">{{feedback.feedback}}</textarea>
        </div>
        <div class="form-group">
          <label for="InputLP">LP</label>
          <input type="text" class="form-control" id="InputLP" placeholder="LP" [(ngModel)]="account.lp" name="lp">
        </div>
        <div class="form-group" *ngIf="!edited; else showBack">
          <button (click)="addLP(account,feedback)" class="btn btn-primary" data-dismiss="alert">Add LP</button>
        </div>
</form>

component.ts:

@Component({
  selector: 'app-add',
  templateUrl: './add.component.html',
  styleUrls: ['./add.component.scss']
})
export class AddComponent implements OnInit {

  feedback = {};
  account = {};

  edited:boolean;
  status: boolean;

  constructor(private route: ActivatedRoute, private accountService: AccountService,
    private router: Router) { }

  ngOnInit() {
    this.route.paramMap
          .switchMap((params: ParamMap) => 
            this.accountService.getFeedback(+params.get('idF')))
              .subscribe(feedback => this.feedback = feedback);

    this.route.paramMap
          .switchMap((params: ParamMap) =>
            this.accountService.getAccount(params.get('idC')))
              .subscribe(account => this.account = account);    
  }

  addLP(account:Account,feedback:Feedback){
    this.accountService.updateAccount(account)
      .subscribe(res => {
        this.account = res as Account;
        console.log(res);
        if (account.lp == null){
          console.log(res);
          this.edited = false;
        } else {
          this.edited = true;
          this.accountService.updateStatus(feedback)
            .subscribe(res => { 
              feedback.status = true;
              this.feedback = res as Feedback;
              console.log(this.feedback);
            }, err => {
              console.log(err);
          });
        }
      }, err => {
        console.log(err);
    });
  }

  back() {
    this.router.navigate(['list']);
  }

}

反馈属性:

  public id?: number,
  public feedback?: string,
  public account?: string,
  public status?: boolean

其中帐户是帐户表的外键:

  public account?: string,
  public lp?: string

当我尝试将状态值自动从 false 切换为 true 时,控制台日志将返回:

PATCH http://localhost:3000/api/Feedbacks2 404 (Not Found)

任何帮助将不胜感激!我真的需要解决它。谢谢

【问题讨论】:

    标签: rest api angular5


    【解决方案1】:

    我修改了account.service.ts中的代码:

    updateStatus(feedback: Feedback) {
        let url = "http://localhost:3000/api/Feedbacks";
        var body = {status: true};
        return this.http.patch(url +"/"+ feedback.id, body, this.options)
        .map(res => res.json())
        .catch(err => {
          return Observable.throw(err)
        });
      }
    

    它成功了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-14
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-01
      • 1970-01-01
      • 2021-11-08
      相关资源
      最近更新 更多