PrimeNG Treetable - 获得一个节点的孩子和父母

时间:2018-06-12 22:26:08

标签: typescript primeng primeng-treetable

我正在使用PrimeNG treetable组件,当我点击该节点附近的getChildrens按钮时,我希望获得节点的所有子节点。

另外,当我点击同一节点附近的getParents按钮时,我希望得到该节点的所有父节点。

一旦我选择了合适的按钮,目标是为节点的子节点和父节点提供不同的样式。

PrimeNG treetable是否提供了功能,以获取节点的所有孩子和父母?

1 个答案:

答案 0 :(得分:0)

    /// - Parameter gesture: UIPanGestureRecognizer
    @objc func handleMove(_ gesture: UIPanGestureRecognizer) {

    //1. Get The Current Touch Point
    let location = gesture.location(in: self.sceneView)

    //2. Get The Next Feature Point Etc
    guard let nodeHitTest = self.sceneView.hitTest(location, options: nil).first else { print("no node"); return }

//    var nodeHit = nodeHitTest.node

    let nodeHit = nodeHitTest.node
    let original_x = nodeHitTest.node.position.x
    let original_y = nodeHitTest.node.position.y
//    let nodeHit = sceneView.scene.rootNode.childNode(withName: "motherNode2", recursively: true)
    //3. Convert To World Coordinates
    let worldTransform = nodeHitTest.simdWorldCoordinates
    //4. Apply To The Node
////    nodeHit.position = SCNVector3(worldTransform.x, worldTransform.y, 0)
    nodeHit.position = SCNVector3(worldTransform.x, worldTransform.y, 0)

    for node in nodeHit.parent!.childNodes {
        if node.name != nil{
            if node.name != nodeHit.name {
                let old_x = node.position.x
                let old_y = node.position.y
                node.position = SCNVector3((nodeHit.simdPosition.x - original_x + old_x), (nodeHit.simdPosition.y - original_y + old_y), 0)
            }
        }
    }