ปัญหา Jstree เมื่อใช้ Refresh_node ในโหนดที่ไม่ใช่รูท

ฉันใช้ jstree เพื่อแสดงโหนดบางส่วน (รวมถึงปลั๊กอิน DnD, Type และ Contextmenu) ฉันได้รับทั้งทรีโดยไม่มีปัญหา แสดงอย่างถูกต้องและฉันสามารถเลือกโหนดใดก็ได้ แต่หลังจากใช้การดำเนินการอัปเดต (โดยการเรียก Ajax ไปยังเซิร์ฟเวอร์) บนโหนดเดียว ฉันต้องการรีเฟรชสิ่งนี้ (และเฉพาะสิ่งนี้) โหนด การดำเนินการรีเฟรช_node(myNode) คือสิ่งที่ฉันต้องการ และการเรียก Ajax ก็ใช้งานได้ดีและให้เฉพาะส่วนย่อยที่ฉันต้องการเท่านั้น

แต่เมื่อ jstree พยายามวาดใหม่ ฉันได้รับข้อผิดพลาดเกี่ยวกับตัวแปรที่ไม่มีอยู่จริง ฉันแก้ไขจุดบกพร่องแล้วและสังเกตว่าอาร์เรย์พาเรนต์ของบางโหนดหายไป

ฉันใช้รูปแบบ JSON สำรองเพื่อโหลดแผนผังของฉัน ด้วยการกำหนดค่านี้:

core{
    multiple: false,
    data {
        url: "my_url_string_to_server",
        data: function(node) { return { id: nodeId, /*other params*/ } }
    }
}
/*other plugins config*/

และการเรียกของฉันไปที่ Refresh_node:

//nodeId is a string with the name of the node I want to refresh.
var node = $.jstree.reference('.tree-data').get_node(nodeId);
$.jstree.reference('.tree-data').refresh_node(node);
//I tried refresh_node(nodeId) too, with the same error result.

โหนดต้นไม้ทั้งหมดของฉันคือ: { "id", "UniqueId", "parent": "Parent" }, "text", "Name" }, "state": { }, "type": "type" "li_attr" : { { "title", "title" }, { "class", "class" } } "a_attr": { { "class", "class" } }, "data": { { "dbid", "Id " }, { "dbparent", "ParentId" }, { "สถานะ", "statusId" } } }

ตามที่ระบุไว้ในเอกสารประกอบ jstree (ดู 'รูปแบบ JSON ทางเลือก')

ส่งคืนรายการของพวกเขา (โหนดที่จำเป็นและลูกทั้งหมด) อันเป็นผลมาจากการโทร ajax (ไม่สนใจว่าจะมีการเรียกโหนดรูทหรือโหนดอื่นที่ไม่ใช่รูท)

กรุณาบอกฉันว่าฉันทำอะไรผิด?

ขอบคุณมากล่วงหน้า.


person Tistkle    schedule 29.07.2019    source แหล่งที่มา


คำตอบ (1)


ฉันพบปัญหาแล้ว: เมื่อคุณโทรด้วยรหัสอื่นที่ไม่ใช่รหัสรูท ("#") ให้รีเฟรชจัดการกับโหนดลูกของรหัสโหนด วิธีการของฉันส่งคืนโหนดรูทและโหนดย่อยซึ่งผิด ไม่มีฟังก์ชันในการอัปเดตโหนดเดียวโดยตรงจาก DB แต่ปัญหา นี้ แสดงให้เห็นว่า เพื่ออัปเดตจาก js ดังนั้นฉันจะพยายามอัปเดตโดยรับสถานะใหม่ผ่านการเรียก ajax และใช้การตอบกลับนั้นเพื่ออัปเดตข้อมูลทั้งหมดและวาดใหม่ด้วยตนเอง

หวังว่านี่จะเป็นประโยชน์สำหรับผู้อื่น

ขอบคุณทุกคน!

person Tistkle    schedule 31.07.2019