2015-03-26 4 views
1

Я застрял в этом несколько дней и хочу, чтобы ваша помощь знала, как решить эту проблему. Я создал это приложение, похожее на блок-схему, чтобы нарисовать различные типы предметов с привязкой к различным конечным точкам. После того, как он создается как элемент, конечные точки добавляются динамически в соответствии с типом объекта plumb. это похоже на следующее.Переопределение конечных точек с помощью jsPlumb

Вот как я создаю предметы с отвесом.

var element = document.createElement("div"); 
    element.setAttribute("id",schema_id); 
    element.setAttribute("class","item " +control.Type); 
    element.setAttribute("style","left:" +posX + "px ; top: "+posY+"px"); 

    var output = document.getElementById('container'); 
    output.appendChild(element); 

И затем я добавляю конечные точки в соответствии с его типом.

jsPlumb.addEndpoint(element,<the style goes here>,{ anchor:<the location of the endpoint goes here>, uuid: <a new ID is created for this>}); 

И это то, что он выглядит как

Screen One

мне удалось схватился данные из метода «GetConnections» и получить его сохранить в БД как JSON. Этот JSON включает в себя все идентификаторы, которые предназначены для элементов plumb и всех конечных точек.

Но когда я пытаюсь вернуть его обратно в пользовательский интерфейс, он выглядит следующим образом. Все выглядит великолепно, кроме конечных точек.

Screen Two

На перерисовку, конечные точки создаются таким же образом, упомянутый выше. Чтобы повторно подключить конечные точки, я использую этот код.

jsPlumb.connect({ source:<source id>, target:<target id>,anchors:<location of the endpoint>,<style>); 

Проблема:

Для приведенного выше кода, хотя я даю UUID конечной точки до источника и цели, он не идентифицирует его как конечные точки для подключения и.

Есть ли способ найти идентификатор и подключить их? Я узнал, что только объекты plumb можно искать с помощью «getElementById» с UUID, но не с конечными точками.

Проблема заключается в том, как заставить эти конечные точки подключиться, как первоначально нарисовано. Как подключить каждую конечную точку снова? У меня есть все идентификаторы, и когда они перерисовываются, у них есть те же идентификаторы, которые были у него, когда они были сохранены. Но я не мог найти способ снова подключать конечные точки отдельно, поскольку у этого есть разные типы конечных точек, специфичные для каждого элемента отвеса.

Любые предложения?

Извините за длинный пост Спасибо заранее!

ответ

1

Пожалуйста, см the connect method

Если вы подключаете идентификаторы, или элементы, или Endpoints использовать

jsPlumb.connect({source:<source id>, target:<target id>}); 

, но если подключить массив UUID, двух Endpoints использовать

jsPlumb.connect({uuids:<array of uuids>}); 
+0

Спасибо. jsPlumb.connect ({uuids: <массив uuids>}); сделал работу :) –