09-11-2018 01:27 AM
I am using stencil in form . So i created UI to replace stencil in ADF Form.
FormService.formFieldValueChanged method caling when form input value changed .But Its not calling when custom Stencil value changed . How can i get event when Value of custom Stencil changed in ADF Form ?
Ex : Custom Stencil replace with input box . When Input box value change that time i want to generate event same like adf form input box value change that time this event will call
FormService.formFieldValueChanged
export class TaskAddCommentComponent extends WidgetComponent {
}
export class TaskDetailComponent implements OnInit, OnDestroy, AfterViewInit {
this.formRenderingService.setComponentTypeResolver('muraai_comments', () => TaskAddCommentComponent, true);
IN this component i want to get event when stencil input box value changed. Is It possible ?
}
09-11-2018 01:50 AM
Yes, that 'formFieldValueChanged' is raised on each field value change as the name of the event states.
You can listen to this event from any place. If you want to "emit" this event, you need to call "formFieldValueChanged.emit(...)". Please refer to documentation or source code.
09-11-2018 01:29 AM
Your custom stencil needs to import the FormService and invoke corresponding events. See alfresco-ng2-components/form.service.ts at development · Alfresco/alfresco-ng2-components · GitHub
09-11-2018 01:43 AM
Hi Denys,
I have to import form service in stencil custom component . If I update any other form field value from this component then it will reflect.
ex.
Inside custom Stencil component
FormService.formFieldValueChanged this event will call and i will get all field in custom stencil i can update . Is it correct ?
FormService.formFieldValueChanged.subscribe ((e :FormFieldEvent) {
const fields = e.form.getFormFields();
const name = fields.find(f => f.id === 'name');
name.value ="dharmraj"
});
09-11-2018 01:50 AM
Yes, that 'formFieldValueChanged' is raised on each field value change as the name of the event states.
You can listen to this event from any place. If you want to "emit" this event, you need to call "formFieldValueChanged.emit(...)". Please refer to documentation or source code.
09-11-2018 02:13 AM
Hi Denys,
formFieldValueChanged event is not calling for custom stencil component.
export class TaskAddCommentComponent extends WidgetComponent {
ngOnInit(): void {
this.formService.formFieldValueChanged.subscribe(
( e: FormFieldEvent ) => {
console.log(e);
})
}
This code is not working .
}
export class TaskDetailComponent implements OnInit, OnDestroy, AfterViewInit {
this.formRenderingService.setComponentTypeResolver('muraai_comments', () => TaskAddCommentComponent, true);
ngOnInit(): void {
this.formService.formFieldValueChanged.subscribe(
( e: FormFieldEvent ) => {
console.log(e);
})
}
Here code is working. But when custom stencil component input box value is changing that time its not calling
}
09-11-2018 02:15 AM
As I answered above, you need to raise (emit) event yourself from the custom stencil. It is not going to magically raise event itself
09-11-2018 02:54 AM
Hi Denys,
I'll have to emit event from custom stencil component to the main component using Angular 4. There is no ADF Form event Is It correct ?
09-11-2018 02:56 AM
Yes.
Explore our Alfresco products with the links below. Use labels to filter content by product module.