1

我想在检查器 displayName 编辑文本上写一些东西时将其传递给每个元素的收件箱名称。在此处输入图像描述

我的javascript代码如下:

  var count = 0;
//Code to edit element inboxName with value given from displayName field
                cell.on('change:wi_displayName', function(cell, change, opt) {

                    if(count == 0){
                    //Do nothing the 1st time
                    }
                    else {
                        var inboxName = cell.get('wi_displayName');
                        cell.set( cell.attr('text/text'), inboxName);

                    }
                    count++;

                })
//End of code to edit element inboxName with value given from displayName field

但问题出在最后一行:

cell.set( cell.attr('text/text'), inboxName);

我应该如何设置值?

我的这个元素的模板 json 是:

new joint.shapes.basic.Circle({
            size: { width: 5, height: 3 },
            attrs: {
                circle: { width: 50, height: 30, fill: '#000000' },
                text: { text: 'START', fill: '#ffffff', 'font-size': 10, stroke: '#000000', 'stroke-width': 0 }
            }
        })

谢谢

4

1 回答 1

3

您可以basic.Circle使用cell.attr('text/text', inboxName). 该attr()方法将路径作为第一个参数,它是attrs对象中属性的路径。注意cell.attr('text/text', 'MY VALUE')相当于cell.prop('attrs/text/text', 'MY VALUE')

cell.set()只能用于设置顶级属性,因此您必须这样做cell.set('attrs', { text: { text: 'MY VALUE' } }),但这会覆盖其他属性(例如circle您的情况)。

于 2016-12-19T16:28:15.093 回答