angular - 具有 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);
}
}```
解决方案
你的问题是什么 ?做什么getMelding
?不要混合荷兰语和英语:)
在你的setChecked
方法中,你不应该写meldingen[id].checked = !meldingen[id].checked
吗?
推荐阅读
- python - 使用子进程创建 konsole 实例不会释放进程
- docker - java.lang.IllegalStateException:无法在 localhost:49167 连接到 Ryuk
- replace - 翻译问题:TypeError:预期的字符串或类似字节的对象
- c - 如何将数据包作为入口注入接口?
- kql - 在 Azure 资源图资源管理器中创建联接
- sql - TSQL,如何从数据库中的多个 JSON 行中检索数据
- relational-database - 将一个实体与两个实体或两个实体之间的一种关系联系起来
- python - 如何将 numpy 数组中的 32 位 wav 文件转换为 24 位 wav 文件?
- python - 在列熊猫数据框中的 1 位数字前添加一个零
- python-3.x - 如何使用 python 在线程中启动 websocket 服务器?