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

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

本文关键字:Id 访问 视图 元素 控制器 关联 AngularJS      更新时间:2023-09-26

在控制器中,我希望访问视图中的元素,以便在用户调用操作时可以对其进行操作。我目前正在使用 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>

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