d3.js dendrogram: ملزمة العقارات القديمة والجديدة لعنصر SVG

StackOverflow https://stackoverflow.com//questions/24060594

سؤال

فهمي ل D3 محدود في الوقت الحالي، وأنا أشد حاليا مع مثال Dendrogram على D3.js. يمكن العثور عليها في عدة أماكن: على هذا الإصدار التفاعلي على سبيل المثال.

عندما أقوم بتطبيقه، كل شيء على ما يرام حتى تحاول تحديث خاصية مثل قطر الدائرة للعقد. إذا قمت بذلك (باستخدام إطار تفاعلي مثل Angularjs الذي يشاهد تغيير المعلمة): تتغير العقد في الحجم. لذلك لا مشكلة حتى الآن. ومع ذلك، إذا قمت بالنقر فوق أحد العقد، فسيتم إعادة تعيين الحجم إلى حجم التهيئة بدلا من الجديد.

عند النقر فوق عقدة، اتبع وظيفة النقر:

giveacodicetagpre.

تدعو وظيفة النقر إلى وظيفة التحديث.

giveacodicetagpre.

الذي يقوم بعد ذلك بتحديث DendRogram ويفتح أو يغلق العقد الضرورية.

giveacodicetagpre.

تدعى وظيفة التحديث هذه:

  1. في التهيئة -> لا مشكلة (مثال: دائرة R= 5)

  2. عند تحديث المعلمة -> لا توجد مشكلة، تحديثات المعلمة. (مثال: دائرة R= 10)

  3. عند النقر فوق عقدة -> إشكالية -> يأخذ الرسم البياني المعلمات الأولية (مثال: دائرة R= 5)

  4. كل هذا ربما لديه الكثير للقيام به مع التركيب وكيف يعالج JavaScript Databinding لكنني لا أعرف كيفية القيام بذلك بشكل صحيح. أحتاج إلى أن أكون قادرا على الوصول إلى الخصائص الجديدة بدلا من القديم.

    هل هناك طريقة إما

    1. قم بتكييف الرمز حتى يتم أخذ المعلمة الجديدة بدلا من القديم؟

    2. ربط المعلمات إلى مجموعة SVG ككائن (ربما لا كفاءة؟) لذلك أنا هل يمكن الوصول إليها يدويا من أي نطاق باستخدام محددات D3؟

هل كانت مفيدة؟

المحلول

قمت بتعيين خاصية لعنصر DOM لهذه السمات التي لا تختلف في المساغة.

giveacodicetagpre.

قد لا يكون الحل الأمثل ولكنه يعمل بالنسبة لي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top