【发布时间】:2019-10-25 03:45:39
【问题描述】:
我需要在列表中找到对象。
这是我的清单:
export interface Controllermodel {
controllerDisplayName: string;
controllerFarsiName: string;
roleId: number;
controllerId: string;
actionsVM: Actionmodel[];
}
export interface Actionmodel {
displayName: string;
actionEnglishName: string;
actionId: number;
}
现在我需要在列表中查找对象,但是当我使用此代码时:
export class ValidatePermissionDirective implements OnInit {
show: boolean;
constructor(private templateRef: TemplateRef<any>,
private viewContainerRef: ViewContainerRef
, private dynamic: DynamicPermissionService) { }
// tslint:disable-next-line:no-input-rename
@Input('appValidatePermission') AccessName:string;
ngOnInit() {
this.ValidatePemission();
if (this.show) {
this.viewContainerRef.createEmbeddedView(this.templateRef);
} else {
this.viewContainerRef.clear();
}
}
ValidatePemission()
{
console.log(this.AccessName)
const find = this.dynamic.dynamicModel.find(x =>
x.actionsVM.find(z => z.actionEnglishName === this.AccessName));
console.log(find)
if (find) {
console.log(false);
this.show = false;
} else {
console.log(true);
this.show = true;
}
}
}
但是当我使用此代码时,它会显示此错误:
类型“Actionmodel”不可分配给类型“布尔”。
有什么问题??我该如何解决这个问题?
【问题讨论】:
-
哪一行报错
-
@Sajeetharan 在这一行:
const find = this.dynamic.dynamicModel.find(x => x.actionsVM.find(z => z.actionEnglishName === this.AccessName)); -
@kianoushdortaj
this.AccessName的类型是什么,你在哪里声明的? -
@MaihanNijat 我更新了问题
-
能否请您在问题中也添加 DynamicPermissionService 代码
标签: javascript angular typescript