错误:<execute>或<revert>阶段中的非法调用(操作:element.setColor)

时间:2019-10-25 10:29:05

标签: javascript angular

我正在使用bpmn.js创建图表流。我正在尝试更改每个元素的默认颜色,例如bpmn:startEvent,bpmn:endEvent等。

 modeler.on('shape.added', (e) => {   
 if (e.element.type === 'bpmn:UserTask') {
           var modeling = modeler.get('modeling').setColor(e.element, {
               fill: '#000000',
               stroke: '#e432ee'
           });   
 }   
 ................ more and more and more 
});

当我导入一个图表时,它会起作用,但是会出现collors,但是当我单击面板时,它们不会出现并且我收到一些javascript错误,这使我无法正确放置或选择元素。 我将此代码放在app.js的最后一行之后:

这是我收到的错误是javascript:

bpmn-modeler.production.js:1514 Error: illegal invocation in <execute> or <revert> phase (action: element.setColor)
    at ph._pushAction (bpmn-modeler.production.js:16556)
    at ph.execute (bpmn-modeler.production.js:16478)
    at Od.setColor (bpmn-modeler.production.js:18492)
    at flowchart.component.ts:99
    at bpmn-modeler.production.js:1511
    at Gt._invokeListener (bpmn-modeler.production.js:1512)
    at Gt._invokeListeners (bpmn-modeler.production.js:1505)
    at Gt.fire (bpmn-modeler.production.js:1490)
    at Et._addElement (bpmn-modeler.production.js:1068)
    at Et.addShape (bpmn-modeler.production.js:1073)

有什么想法吗?

1 个答案:

答案 0 :(得分:-1)

您是否尝试在超时下包装代码以等待元素创建...

Modeler.on('shape.added', (e) => {   
    
    setTimeout(function() {

        // your code here

    }, 1000);
});