我有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
的那些人
等于不会重新创建,只会更新其年份。
这是Model:
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
中的
是Common,但它们是分开的
我需要它向我显示此列表:
controllerName: "c1"
actoinName: "a3"
actoinName: "a2"
actoinName: "a1"
答案 0 :(得分:1)
好吧,我对您的代码做了一些更改,希望对您有所帮助: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)
}