AngularJS - 从关联的控制器通过 Id 访问视图元素

AngularJS - Access a View element by Id from its associated Controller

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

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

这有效!

我在创建同一视图和控制器的第二个实例时出现问题。因为我使用 $('#jstree_demo_div') 选择视图元素,所以当在任一控制器实例中调用上述内容时,它总是在 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>

Angular 方法是创建一个包含您的 jstree 的指令,然后在您的视图上放置多个副本。在指令的 link 函数中,您可以访问仅代表该指令子项的 jQuery 对象。您可以在其中使用选择器来完成一些工作。请参阅 https://docs.angularjs.org/guide/directive 中的 "Creating a Directive that Manipulates the DOM" 部分。