当前位置: 首页 > Web前端 > HTML5

在SAP电子商务云SpartacusUI的实现中可以找到Angular如何根据类的定义和数据动态创建类

时间:2023-04-04 23:16:53 HTML5

的实例的示例。返回this.resolveModuleFactory(moduleFunc).pipe(map(([moduleFactory])=>moduleFactory.create(parentInjector)),concatMap((moduleRef)=>this.runModuleInitializersForModule(moduleRef)),tap((moduleRef)=>this.events.dispatch(createFrom(ModuleInitializedEvent,{feature,moduleRef,})));}下面代码中,createFrom方法的入参ModuleInitializedEvent是另一个TypeScript文件中定义的类,feature和moduleRef是实例数据:createFrom的实现:/***创建给定类的一个实例,并用给定的数据填充它的属性。**@param类的类型引用*@param具有要复制到类的属性的数据对象*/exportfunctioncreateFrom(type:Type,data:T):T{console.log('Jerry为类型动态创建了新实例:',type,'withdata:',data);returnObject.assign(newtype(),data);}这里传入的类定义和传入的实例数据必须严格匹配:比如ModuleInitializedEvent的字段feature和moduleRef在我们传入createFrom函数的实例数据中是一一对应的。更多Jerry原创文章在这里:《王子熙》: