我无法访问我当前的元素

时间:2016-08-31 11:52:53

标签: javascript variables object global-variables jointjs

这是Rappid Toolkit的一个实例,它使用jointJS构建可视化工具和Web开发。 http://i.stack.imgur.com/6XSis.png

在此工具包中,您可以创建一个可以成为网站的图表。

我的问题如下:

在此图表的每个元素中,其下方都有一个框:x,y,width,height,angle。

我想更改此boxcontent的此信息并显示此元素的一些信息,但我必须添加我的代码片段的代码如下(var Halo是图中元素的var):

public class Day implements Comparator<Day> {

    private String someProperty;

    public String getSomeProperty() {
         return someProperty;
    }

    public void setSomeProperty(String someProperty) {
        this.someProperty = someProperty;
    }
   // Overriding the compare method to sort the age 
   public int compare(Day d1, Day d2){
      return d1.getSomeProperty().compare(d2.getSomeProperty());
   }
}

如果我尝试在其中添加我的代码以JSON格式访问我的当前元素信息我的完整代码是:

var halo = new joint.ui.Halo({
                cellView: cellView,

                boxContent: function(cellView) {


                     return"Here I want to display my box content info instead of x,y,width,height, angle";
                }
            }).render();    

其中 wi_name 是我的元素的名称,但在第一行中我无法访问图表的特定元素。

var halo = new joint.ui.Halo({
                cellView: cellView,

                boxContent: function(cellView) {
            // Drawing
            var selectedObjectDataText = JSON.stringify(this.cellView.toJSON());
        var selectedObjectDataJSON = JSON.parse(selectedObjectDataText);

                     return(selectedObjectDataJSON[0].wi_name);
                }
            }).render();    

是否有任何全局方式来访问我的光环(我的图形元素),因为 this.cellView.toJSON()不起作用? 我尝试了 this.model.toJSON() this.cellView.model.toJSON()等没有结果

2 个答案:

答案 0 :(得分:1)

请注意,JointJS linkselements是Backbone模型linkViewelementView是主干视图)

要使用get()方法获取属性的当前值。

boxContent: function(cellView) {
    return cellView.model.get('wi_name');
}

或者,您可以使用prop(),它也可以返回模型的嵌套属性。

boxContent: function(cellView) {
    return cellView.model.prop('wi_name');
}

答案 1 :(得分:0)

适用于var selectedObjectDataText = JSON.stringify(cellView.model.toJSON());

谢谢大家的支持。