首页 > 解决方案 > 具有 setfunction 的服务中的角度更新布尔值?

问题描述

嗨,我正在尝试通过我的组件单击按钮来更新我的服务中的布尔值。我很想调用 setfunction,然后将 bool 值更改为相反的值。所以从真到假,当它再次从假到真点击时。

服务

import { Injectable } from "@angular/core";

import { Melding } from "./melding";
import { Subject } from "rxjs";

@Injectable({
    providedIn: "root"
})
export class MeldingService {
    checkedChange: Subject<Boolean> = new Subject<Boolean>();
    private meldingen = new Array<Melding>(
        { id: 1, name: "Zinc verstopt Machine A", checked: false, roleId: 1 , beschrijving: "Ga de machine maken. dit is de beschrijving lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum "},
        { id: 2, name: "Storing Machine A", checked: false, roleId: 1 , beschrijving: "Ga de machine maken. dit is de beschrijving"},
        { id: 3, name: "Zinc verstopt Machine B", checked: false, roleId: 2 , beschrijving: "Ga de machine maken. dit is de beschrijving"},
        { id: 4, name: "Storing Machine B", checked: false, roleId: 2 , beschrijving: "Ga de machine maken. dit is de beschrijving"},
        { id: 5, name: "Defect Machine B", checked: false, roleId: 2 , beschrijving: "Ga de machine maken. dit is de beschrijving"},
        { id: 6, name: "Zinc verstopt Machine C", checked: false, roleId: 3 , beschrijving: "Ga de machine maken. dit is de beschrijving"},
        { id: 7, name: "Zinc verstopt Machine D", checked: false, roleId: 4 , beschrijving: "Ga de machine maken. dit is de beschrijving"},
        { id: 8, name: "Zinc verstopt Machine E", checked: false, roleId: 5 , beschrijving: "Ga de machine maken. dit is de beschrijving"},
        { id: 9, name: "Storing Machine E", checked: false, roleId: 6 , beschrijving: "Ga de machine maken. dit is de beschrijving"}
    );

    setChecked(id: number) {
        var melding = this.getMelding(id);
        console.log(!melding.checked);
        this.checkedChange.next(!melding.checked);

    }
}

零件

import { ActivatedRoute } from "@angular/router";

import {Melding} from "../melding/melding";
import {MeldingService} from "../melding/melding.service";

@Component({
  selector: 'ns-melding-detail',
  templateUrl: './melding-detail.component.html'
})
export class MeldingDetailComponent implements OnInit {
  melding: Melding;

  constructor(
    private meldingService: MeldingService, 
    private route: ActivatedRoute) { }

  ngOnInit(): void {
    const id = +this.route.snapshot.params.id;
    this.melding = this.meldingService.getMelding(id);
  }

  onButtonClick(id: number) { 
    this.meldingService.setChecked(id);
  } 
}```

标签: angulartypescriptnativescript

解决方案


你的问题是什么 ?做什么getMelding?不要混合荷兰语和英语:)

在你的setChecked方法中,你不应该写meldingen[id].checked = !meldingen[id].checked吗?


推荐阅读