我一直試圖使用AlloyUI的diagram builder example。如何將自定義節點和屬性添加到AlloyUI圖生成器中
我需要添加一些額外的自定義節點類型以及節點的一些附加屬性。我想過修改,然後建立圖書館,但這聽起來像是一個矯枉過正的工作,而且我還有issues與建築。
有沒有簡單的方法來做到這一點?
UPDATE
我意識到我可以直接修改build文件夾中的文件擺脫構建過程中。我嘗試添加如下內容:
var Lang = A.Lang,
..
CUSTOM = 'custom',
..
..
A.DiagramNodeCustom = A.Component.create({
NAME: DIAGRAM_NODE_NAME,
ATTRS: {
type: {
value: CUSTOM
},
},
EXTENDS: A.DiagramNodeTask
});
A.DiagramBuilder.types[CUSTOM] = A.DiagramNodeCustom;
到/build/aui-diagram-builder-impl/aui-diagram-builder-impl.js
。
我有我的主要的Javascript文件結構如此:
var Y = YUI().use(
'aui-diagram-builder',
..
function(Y) {
var availableFields = [
..
{
iconClass: 'aui-diagram-node-task-icon',
label: 'Custom',
type: 'custom'
},
..
];
diagram = new Y.DiagramBuilder(
{
availableFields: availableFields,
boundingBox: '#myDiagramContainer',
srcNode: '#myDiagramBuilder'
}
).render();
..
}
);
,我可以知道一個自定義節點添加到我的圖。我可以點擊它並更改名稱等,但不幸的是它在圖中是不可見的。此外,我仍然無法找到如何將新屬性添加到節點。有任何想法嗎?
這太好了,謝謝。你有沒有機會知道如何給節點添加屬性? – none
對,對不起!我已經更新了一個例子[這裏](http://jsfiddle.net/wP6PJ/4/)。基本上你需要擴展'getPropertyModel'方法來添加你想要公開的屬性。 – jbalsas
+1,這在我的前端非常適合我。但是,當我去保存圖時,我通過調用'builder.toJSON()'來發送數據。所有的標準屬性都存在,但是我的自定義屬性(在前端顯示的很好)不會出現在JSON對象中。有任何想法嗎? –