AngularJS - 通过Id从其关联的Controller访问View元素

时间:2016-07-12 14:31:30

标签: javascript jquery html angularjs jstree

在控制器中,我希望访问视图中的元素,以便在用户调用操作时对其进行操作。我目前正在使用JQuery和JSTree,我目前的解决方案是:

$('#jstree_demo_div').jstree(true).hide_node(item);

这有效!

当我创建同一视图和控制器的第二个实例时,会出现问题。因为我使用$('#jstree_demo_div')选择了views元素,所以当在任一控制器实例中调用上述元素时,它总是在DOM中选择第一个jstree_demo_div实例,因此只有一个视图正常工作。

如何限制我的控制器仅获取相关视图范围内的元素?

我的观点是这样的:

<div class="container" ng-controller="listingsController">
    <div class="row">
        <div class="col-xs-12 col-sm-9 col-md-4">
            <label style="position:fixed">Customers</label>
            <div style="overflow: auto; height:300px; margin-top:20px" id="jstree_demo_div" role="tree" aria-multiselectable="true"></div>
        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:1)

Angular的方法是创建一个包含jstree的指令,然后在视图上放置多个副本。在您的指令的链接函数中,您可以访问仅表示该指令的子节点的jQuery对象。您可以使用选择器来完成某些工作。请参阅https://docs.angularjs.org/guide/directive上的“创建操纵DOM的指令”部分。