角度:如何获得由ID元素与来自指令的表达?(Angular: How to get an eleme

2019-10-21 15:16发布

体积庞大的问题,提前让我们打破下来。 我尽力达成一个类似的行为就像天然<label><input> 。 我不能嵌套他们,所以我用一个风格是这样的:

<input type="checkbox" id="test" />
Some other content...
<label for="test">Lorem ipsum</label>

在我的情况<label>是一个定制的指令,并<input>是任意elment。 它看起来是这样的:

<p id="test">Some element...</p>
Some other content...
<custom-directive for="test">My directive</custom-directive>

可悲的是我的id是不是真的静态的。 它是一个表达式。 它看起来是这样的:

<p id="test-{{ foo }}">Some element...</p>
Some other content...
<custom-directive for="test-{{ foo }}">My directive</custom-directive>

现在我的问题:内幕<custom-directive>我想在配置的元件for属性。 比方说foo的值为"bar"中设置$rootScope<custom-directive>我得到foo-bar 。 但是无论在哪里我尝试它(里面compilelinkcontroller ,使用或不使用priority等)的特定元素(这里<p>仍具有test-{{ foo }}在那个时候,所以我得到nullgetElementById

我怎样才能获得该元素的diretive外,它是否有一个id含有表达?

下面是一个例子: http://jsfiddle.net/cd6uooze/

(注:在我的现实世界的应用程序这个问题是稍有不同的我居然可以getElementById从,即使它的一个指令的权利要素id 。包含表达式但是这个作品只有等到具体的模板里面$templateCache 。我不能”吨真的在的jsfiddle打破下来,但它会从的jsfiddle的例子很相似。)

Answer 1:

你需要写里面你的getElementById代码$timeout

检查该更新的小提琴 。



文章来源: Angular: How to get an element by id with an expression from a directive?