我有c
和c
列表包括a
。
像这样:C1 => a1,a2,a3
,C2=>a1,a2,a3
。
我在页面中将它们显示为复选框列表。
我需要选择C
和它的a
列表。
像这样:C1=>a1
,C2=>a1,a3
。
我写的代码,但它列在这样的列表:C1=>a1
,C2=>a1
,C2=>a3
。
那些C
是相同的是独立的و但我需要那些C
等于不重新创建,只有他们的年份将更新。
这是模型:
export interface AccessModel {
controllerNAme:string;
actionsName:Actionsname[];
}
export interface Actionsname {
name:string;
}
TS:
onChange(event,controllerName:string,actoinName:string)
{
this.PushAccessModel.push({
controllerName,
actoinName
})
console.log(this.PushAccessModel)
}
我怎么解决这个问题 ????
更新
它告诉我这个清单:
actoinName: "a3"
controllerName: "c1"
actoinName: "a2"
controllerName: "c1"
actoinName: "a1"
controllerName: "c1"
在所有对象ControllerName => C1
是常见的,但它们是分开的
我需要它给我看这个清单:
controllerName: "c1"
actoinName: "a3"
actoinName: "a2"
actoinName: "a1"
好吧,我对你的代码做了一些修改,我希望这可能有所帮助:https://stackblitz.com/edit/accessmodel-rabjub
正如您从我的代码中看到的那样,您也遇到了一些类型错误,因此控制台中的结果可能与您期望的结果略有不同。
无论如何,这是最大的变化:
onChange(event,controllerName:string,actionName:string)
{
var test = this.PushAccessModel.find(x => x.controllerName === controllerName);
if(test){
test.actionsName.push({name: actionName});
}else {
this.PushAccessModel.push({
controllerName: controllerName,
actionsName: [{
name: actionName
}]
});
}
console.log(this.PushAccessModel)
}