在控制器中,我希望访问视图中的元素,以便在用户调用操作时对其进行操作。我目前正在使用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>
答案 0 :(得分:1)
Angular的方法是创建一个包含jstree的指令,然后在视图上放置多个副本。在您的指令的链接函数中,您可以访问仅表示该指令的子节点的jQuery对象。您可以使用选择器来完成某些工作。请参阅https://docs.angularjs.org/guide/directive上的“创建操纵DOM的指令”部分。