فهرست منبع

fix: whole output crash when a sub output fail

Bug reproduce:
```
put_collapse('title', [put_markdown(None), 'test'])
```
wangweimin 3 سال پیش
والد
کامیت
31b26d0985
2فایلهای تغییر یافته به همراه7 افزوده شده و 3 حذف شده
  1. 1 1
      webiojs/src/handlers/output.ts
  2. 6 2
      webiojs/src/models/output.ts

+ 1 - 1
webiojs/src/handlers/output.ts

@@ -41,7 +41,7 @@ export class OutputHandler implements CommandHandler {
             try {
                 elem = getWidgetElement(msg.spec);
             } catch (e) {
-                return console.error(`Handle command error, command: ${msg}, error:${e}`);
+                return console.error(`Handle command error: "${e}"\nCommand:\n${JSON.stringify(msg)}`);
             }
 
             let container_elem = $(msg.spec.scope);

+ 6 - 2
webiojs/src/models/output.ts

@@ -273,8 +273,12 @@ export function render_tpl(tpl: string, data: { [i: string]: any }) {
     let elem = parseHtml(html);
     for (let dom_id in placeholder2spec) {
         let spec = placeholder2spec[dom_id];
-        let sub_elem = getWidgetElement(spec);
-        elem.find(`#${dom_id}`).replaceWith(sub_elem);
+        try{
+            let sub_elem = getWidgetElement(spec);
+            elem.find(`#${dom_id}`).replaceWith(sub_elem);
+        }catch (e) {
+            console.error('Error when render widget: \n%s', JSON.stringify(spec));
+        }
     }
     return elem;
 }