javascript - 如何从 JointJS 元素中的 prop 读取值?
问题描述
我尝试从 JointJS 元素中读取道具。我可以看到它被添加了,但我不知道如何读取该值。
var uml = joint.shapes.uml;
var state = new uml.State({
name: "some name",
prop: { myId: "some id" },
events: ["event1", "event2"],
attrs: {
".uml-state-body": {
fill: "rgba(48, 208, 198, 0.1)",
stroke: "rgba(48, 208, 198, 0.5)",
"stroke-width": 1.5
},
".uml-state-separator": {
stroke: "rgba(48, 208, 198, 0.4)"
}
}
});
this.graph.addCell(state);
这不起作用
this.paper.on("element:pointerup ", function(elementView) {
var id = elementView.model.get("myId");
});
解决方案
你真的很亲近... ;)
实际代码的解决方案
我prop
在getter中使用了完整路径get("prop").myId
比你的:elementView.model.get("prop").myId
https://codepen.io/Michal-Miky-Jankovsky/pen/PVXaZy
为什么?
来自构造函数的所有对象键都是getter 的“属性”
更好的解决方案...
您可以直接在模型上设置“myId”:
var state = new uml.State({
myId: "some id",
...
});
比预期的那样可用于吸气剂:
elementView.model.get("myId")
推荐阅读
- css - 渐变动画使 CSS 无法在 Internet Explorer/Edge/Safari 上正确显示
- z3 - 变量是否有最大值大小?
- java - 在 RecyclerView 中显示多个数据时出现 java.lang.IndexOutOfBoundsException
- java - 检索 Apache circularfifobuffer 中最后一项的计算效率最高的方法是什么?
- r - ggplot2 堆积条形图,每个 X 变量 2 个条形图
- scala - Spark 会话目录失败
- heroku - Heroku 网站可以读取 Server Side Includes
- html - 如何找出 url HTML 按钮提交到的内容
- html - 文本超出 DIV 样式宽度
- swift - 将 OpenGL 着色器转换为 Metal (Swift) 以在 CIFilter 中使用