Parcourir la source

NOT WORKING: Test of Dynaform Service

Richard Knight il y a 6 ans
Parent
commit
1adf0d908b

+ 1 - 1
src/app/app.component.html

@@ -8,7 +8,7 @@
 				</p>
 			</div>
 		</div>
-		<app-dynaform formGroupName="dynaformtest" [meta]="formMetaDataObj" [template]="tref"></app-dynaform>
+		<app-dynaform [formGroup]="form" [meta]="meta" [template]="tref"></app-dynaform>
 		<div calss="row">
 			<div class="col-12 pt-4 pb-4">
 				<json-formatter [data]="form.value" open="3"></json-formatter>

+ 7 - 2
src/app/app.component.ts

@@ -12,16 +12,21 @@ import { model, meta } from './_mock/testfields.v5';
 export class AppComponent implements OnInit {
 
 	form: FormGroup;
+	meta: StringMap;
 
 	@ViewChild('testTemplate', { read: TemplateRef })
-	private tref: TemplateRef<any>;
+	tref: TemplateRef<any>;
 
-	constructor(private dynaform: DynaformService) {
+	constructor(
+		private dynaform: DynaformService
+	) {
 	}
 
 	ngOnInit() {
 		this.form = this.dynaform.build(model, meta);
+		this.meta = this.dynaform.autoBuildModeledMeta(model, meta);
 		console.log(this.form);
+		console.log(this.meta);
 	}
 }
 

+ 1 - 1
src/app/dynaform/components/index.ts

@@ -1,7 +1,7 @@
 // Barrel grouping all form field components
 // See https://basarat.gitbooks.io/typescript/docs/tips/barrel.html
 
-export { DynaformComponent } from './../dynaform.component';
+// export { DynaformComponent } from './../dynaform.component';
 export { TextComponent } from './native/text/text.component';
 export { TextareaComponent } from './native/textarea/textarea.component';
 export { PasswordComponent } from './native/password/password.component';

+ 1 - 1
src/app/dynaform/dynaform.component.html

@@ -7,7 +7,7 @@
      used when a TemplateRef is NOT supplied to component -->
 <ng-template #default let-control="control" let-meta="meta">
 	
-	<div class="row" *ngIf="meta.type !== 'Dynaform'; else recursiveDynaform" [ngClass]="getRowClass(meta.type)">
+	<div class="row" *ngIf="meta.type !== 'Container'; else recursiveDynaform" [ngClass]="getRowClass(meta.type)">
 		<div class="col-sm-4">
 			<label [for]="meta.name">{{ meta.label }}</label>
 		</div>

+ 7 - 2
src/app/dynaform/dynaform.component.ts

@@ -71,10 +71,15 @@ export class DynaformComponent implements OnInit {
 	}
 
 	getTemplateContext(controlName: string): DynarowContext {
-		return {
+		console.log('getTemplateContext', controlName);
+		console.log(this.formGroup);
+		console.log(this.formMetaData);
+		const context = {
 			control: this.formGroup.get(controlName),
-			meta: this.formMetaData[controlName]
+			meta: this.formMetaData.meta[controlName]
 		};
+		console.log(context);
+		return context;
 	}
 
 	getRowClass(inputType: string): string {

+ 6 - 1
src/app/dynaform/dynaform.module.ts

@@ -4,6 +4,7 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
 
 import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
 
+import { DynaformComponent } from './dynaform.component';
 import { DynafieldDirective } from './directives/dynafield.directive';
 import { DynaformService } from './services/dynaform.service';
 
@@ -21,6 +22,7 @@ import { DateInputsModule } from '@progress/kendo-angular-dateinputs';
 		DateInputsModule
 	],
 	declarations: [
+		DynaformComponent,
 		DynafieldDirective,
 		...ffcArr
 	],
@@ -28,6 +30,9 @@ import { DateInputsModule } from '@progress/kendo-angular-dateinputs';
 	providers: [
 		DynaformService
 	],
-	exports: ffcArr
+	exports: [
+		DynaformComponent,
+		ffcArr
+	]
 })
 export class DynaformModule { }

+ 1 - 1
src/app/dynaform/models/index.ts

@@ -189,7 +189,7 @@ class DatepickerField extends SimpleField {
 // Container
 
 class Container {
-	type = 'Dynaform';
+	type = 'Container';
 	label = '';
 	template?: TemplateRef<any>;
 	meta: StringMap; // TODO: Tighten up on type with union type