从"动态删除端口joint.shapes.devs.Model" JointJS

时间:2016-05-10 11:14:39

标签: javascript arrays jointjs

我试图从joitJS中的单元格动态删除端口,所以我有一个元素:

var em = new joint.shapes.devs.Model({
                    position: {x: ev.offsetX, y: ev.offsetY},
                    size: {width: 100, height: 40},
                    attrs: {
                        '.label': {text: bname, fill: 'white'},
                        rect: {fill: '#1ABC9C', stroke: "#000","stroke-width": 0},
                        '.inPorts circle': {
                            fill: '#16A085',
                            magnet: 'passive',
                            type: 'input',
                            'stroke-width': 0,
                            r: 8
                        },
                        '.outPorts circle': {fill: '#E74C3C', type: 'output',"stroke-width": 0, stroke: "#000",r: 8}
                    },
                    file: bname + ".txt",
                    input: "url",
                    name: bname,
                    inPorts: [''],
                    outPorts: [''],
                    output: "txt"
  });

我使用此功能动态添加动态,将端口添加到:

function addInPort(name, opt){
    var portsArray = currCell.model.get('inPorts') || [];
    currCell.model.set('inPorts', portsArray.concat([name]), opt);
}

这是删除一个:

function removeInPort(opt){
    var portsArray = currCell.model.get('inPorts') || [];
    portsArray.shift();
    console.log(portsArray);
    currCell.model.set('inPorts',portsArray, opt);
}

当我尝试从端口数组中删除端口时,它不会渲染端口,它会从数组中删除它们,但它不会渲染它们。

我已经尝试过array.slice(),array.shift(),但是它们不会渲染,但它会删除所有端口。

我怎么能这样做?

0 个答案:

没有答案