angular - Common object change in all component when one of them edit it
问题描述
I have :
item.ts
export interface IItem {
name: string;
isActive?: boolean;
}
const data: IItem[] = [
{
name: 'item1',
isActive: true
},
{
name: 'item2',
isActive: true
},
{
name: 'item3',
isActive: false
},
{
name: 'item4',
isActive: true
}
];
export default data;
I use this data in multiple component :
Component1
export class C1Component {
items: IItem [] = items;
}
Component1
export class C2Component {
items: IItem [] = items;
}
When I make changes in the items for example delete item in Component1, the items in the other component also changed. I can't understand why.
Does angular Objects are loosely coupled? and how can solve this issue please.
I tried also:
...
export class Menu {
static get data() {
return data;
}
}
and call Menu.data
, but the error persist and it is the same behavior.
解决方案
更改代码位置解决了我的问题,所以我所做的就是使用这样的 get 方法创建一个类:
export class ItemClass {
static get data() {
const data: IItem[] = [
{
name: 'item1',
isActive: true
},
{
name: 'item2',
isActive: true
},
{
name: 'item3',
isActive: false
},
{
name: 'item4',
isActive: true
}
];
return data;
}
}
在我调用的组件中items = ItemClass.data;
推荐阅读
- r - 威布尔持续时间模型的模拟
- email - 哪些端口专门用于电子邮件通信中的哪个目的?
- javascript - 在 Div/Text Overlay 上显示图像
- saxon - 查询因动态错误而失败:无法使用此输出方法序列化地图
- javascript - 函数 computeHmacSha256Signature(value, key) 是否损坏?
- javascript - 如何将数据从一个 svelte 文件导入到另一个文件
- java - 如何将值增加 X
- google-apps-script - 在不打开侧边栏的情况下执行 Google App Script 中的 HtmlOutput 代码
- python - 在 Python 上下载模块
- php - Laravel:如何将模型合并到另一个模型中