2017-05-08 73 views
0

我正在寫一個測試應用程序使用go.js.此應用程序允許用戶動態添加節點,移動現有節點並將它們連接到對方。得到gojs更新後的模型

圖的初始狀態由該模型所描述:

var nodeDataArray = [ 
    { key: "a", operation: "concat" }, 
    { key: "b" }, 
    { key: "c" }, 
    { key: "d", loc: new go.Point(30, 50) } 
]; 
var linkDataArray = [ 
    {from: "a", to: "b", toPort: "A"} 
]; 

現在我有這個問題。當我用myDiagram.model.toJson()輸出我的更新模型時,無論用戶在此期間做了什麼改變,我都會得到原始模型。有沒有更好的方法來輸出圖的狀態current

感謝

回答

2

沒有,打電話Model.toJson是獲得該模型的當前狀態的最好方法。問題是模型數據如何反映您在圖表中看到的內容。

如果用戶添加或刪除了任何節點或鏈接,您會在toJson()輸出中看到該節點或鏈接。

如果在Node.location上有雙向綁定,並且用戶已經移動了一些節點,新的位置將反映在模型數據中。

如果用戶通過應用程序中的某些代碼以某種方式修改了節點的「操作」,該操作也應該反映在模型數據中,假設您的代碼直接修改數據而不直接使用GraphObject利用雙向綁定。

+0

感謝您的回答。如何在位置屬性上建立雙向綁定? – Forepick

+2

請閱讀: http://gojs.net/latest/learn/index.html http://gojs.net/latest/intro/usingModels.html http://gojs.net/latest/intro/dataBinding .html 請注意,模型只需要在數據上具有關係定義屬性。你可能想要保留的其他東西,包括位置和大小以及文本和數字等。你需要定義你自己。 –