@@ -167,10 +167,10 @@ class Component extends Base {
167167 */
168168 parseConfig ( component = this . component ) {
169169 let me = this ,
170- { handler, listeners, reference, validator} = component ,
170+ { handler, listeners, reference, renderer , validator} = component ,
171171 eventHandler , handlerScope ;
172172
173- if ( handler && typeof handler === 'string' ) {
173+ if ( handler && Neo . isString ( handler ) ) {
174174 handlerScope = me . getHandlerScope ( handler , component ) ;
175175
176176 // If the handler name was not resolved in the Component itself, bind it
@@ -192,7 +192,7 @@ class Component extends Base {
192192 listeners [ key ] . fn = handlerScope [ eventHandler ] . bind ( handlerScope )
193193 }
194194 } else {
195- value . forEach ( listener => {
195+ value ? .forEach ?. ( listener => {
196196 if ( Neo . isObject ( listener ) && listener . hasOwnProperty ( 'fn' ) && Neo . isString ( listener . fn ) ) {
197197 eventHandler = listener . fn ;
198198 handlerScope = me . getHandlerScope ( eventHandler , component ) ;
@@ -208,7 +208,17 @@ class Component extends Base {
208208 }
209209 } ) ;
210210
211- if ( Neo . isString ( validator ) ) {
211+ if ( renderer && Neo . isString ( renderer ) ) {
212+ handlerScope = me . getHandlerScope ( renderer ) ;
213+
214+ if ( ! handlerScope ) {
215+ Logger . logError ( 'Unknown renderer for' , component . id , component )
216+ } else {
217+ component . renderer = handlerScope [ renderer ] . bind ( handlerScope )
218+ }
219+ }
220+
221+ if ( validator && Neo . isString ( validator ) ) {
212222 handlerScope = me . getHandlerScope ( validator ) ;
213223
214224 if ( ! handlerScope ) {
0 commit comments