|
@@ -18,14 +18,18 @@ export abstract class BaseView<T> {
|
|
|
|
|
|
type: T = {} as T;
|
|
|
model: any = {};
|
|
|
+ fields: Array<any>;
|
|
|
injector: any = {};
|
|
|
title: string;
|
|
|
|
|
|
constructor(c: { new (): T; }, ...injectables: any[]) {
|
|
|
this.type = new c();
|
|
|
this.model = getMetadataStorage().models.filterByTarget(this.type.constructor).items.shift();
|
|
|
+ this.fields = getMetadataStorage().fields.filterByTarget(this.type.constructor).items;
|
|
|
this.injector = ReflectiveInjector.resolveAndCreate(injectables);
|
|
|
this.title = "Sin título";
|
|
|
+
|
|
|
+ console.log(this.getFieldsRelated());
|
|
|
}
|
|
|
|
|
|
// ------------------------------------------------------------
|
|
@@ -77,6 +81,22 @@ export abstract class BaseView<T> {
|
|
|
return this.getModel().name;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ */
|
|
|
+ getFields(): Array<any> {
|
|
|
+ return this.fields;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ */
|
|
|
+ getFieldsRelated(): Array<any> {
|
|
|
+ return this.getFields().filter(field => {
|
|
|
+ return !!field.options.related;
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
*
|
|
|
*/
|