Angular如何获取控制器实例的元素ID

时间:2014-07-30 14:46:41

标签: angularjs angularjs-controller

我有一个角度应用,可能有多个页面打开,使用相同的控制器。我需要能够引用特定于控制器的一个实例的DOM元素。 例如:

<div id="instanceOne" ng-controller="tradeViewController">
   <div class='tradeHeader'/>
   <div class='tradePriceCurve'/>
   <div class='trendAnalysisGraph'/>
</div>
//Then on a separate page
<div id="instanceTwo" ng-controller="tradeViewController">
   <div class='tradeHeader'/>
   <div class='tradePriceCurve'/>
   <div class='trendAnalysisGraph'/>
</div>

在我的控制器中,我正在设置一些自定义UI元素,其数据与控制器的范围相关联,并且数据正在从正在进入的异步数据源进行更改。如果我有两个此页面的实例,并且我收到异步更新,如何将该更新仅应用于它所属的实例? (即如果我对它进行硬编码,那就是

$("#instanceOne .tradeHeader .tradeDate").html(newVal);

问题是我不知道特定控制器实例绑定到哪个DOM ID(即“#instanceOne”或“#instanceTwo”)

由于

1 个答案:

答案 0 :(得分:2)

你以一种没有角度的方式来解决问题&#34;。尽量避免在控制器中放置任何DOM操作代码(包含jQuery)。

您似乎想要实现一个角度指令来操纵DOM元素。

无论如何,如果您真的开始继续沿着这条路前进,您可以通过添加&#34; $ element&#34;来获取控制器附加的元素。到控制器所需的注射剂清单:

myModule.controller("myController", ["$element", function($element) ...
相关问题