体积庞大的问题,提前让我们打破下来。 我尽力达成一个类似的行为就像天然<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
。 但是无论在哪里我尝试它(里面compile
, link
, controller
,使用或不使用priority
等)的特定元素(这里<p>
仍具有test-{{ foo }}
在那个时候,所以我得到null
用getElementById
。
我怎样才能获得该元素的diretive外,它是否有一个id
含有表达?
下面是一个例子: http://jsfiddle.net/cd6uooze/
(注:在我的现实世界的应用程序这个问题是稍有不同的我居然可以getElementById
从,即使它的一个指令的权利要素id
。包含表达式但是这个作品只有等到具体的模板里面$templateCache
。我不能”吨真的在的jsfiddle打破下来,但它会从的jsfiddle的例子很相似。)