我有一个角度应用,可能有多个页面打开,使用相同的控制器。我需要能够引用特定于控制器的一个实例的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”)
由于
答案 0 :(得分:2)
你以一种没有角度的方式来解决问题&#34;。尽量避免在控制器中放置任何DOM操作代码(包含jQuery)。
您似乎想要实现一个角度指令来操纵DOM元素。
无论如何,如果您真的开始继续沿着这条路前进,您可以通过添加&#34; $ element&#34;来获取控制器附加的元素。到控制器所需的注射剂清单:
myModule.controller("myController", ["$element", function($element) ...