首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角:如何使用指令中的表达式通过id获得元素?

角:如何使用指令中的表达式通过id获得元素?
EN

Stack Overflow用户
提问于 2015-01-16 12:52:11
回答 1查看 1.1K关注 0票数 1

前面有个笨重的问题,让我们把这件事分解一下。我试图实现类似于本机<label> for <input>的类似行为。我不能嵌套它们,所以我使用这样的样式:

代码语言:javascript
复制
<input type="checkbox" id="test" />
Some other content...
<label for="test">Lorem ipsum</label>

在我的例子中,<label>是一个自定义指令,而<input>是一个任意部分。看起来可能是这样的:

代码语言:javascript
复制
<p id="test">Some element...</p>
Some other content...
<custom-directive for="test">My directive</custom-directive>

遗憾的是,我的id并不是真正的静态的。这是一种表达。看起来可能是这样的:

代码语言:javascript
复制
<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> I get foo-bar中。然而,无论我在哪里尝试它(在compilelinkcontroller,有或没有priority,等等)特定元素(此处为<p>)当时仍然具有test-{{ foo }},因此我在getElementById中获得了null

如果元素具有包含表达式的id ,那么如何在diretive之外获取元素?

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

(注意:在我的实际应用程序中,这个问题略有不同。我实际上可以从一个指令中getElementById正确的元素,即使id包含一个表达式。但是,只有在特定的模板在$templateCache中才能起作用。我不能在JSFiddle中详细说明这一点,但是JSFiddle中的例子非常相似。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-16 12:59:12

您需要在getElementById中编写$timeout代码

检查这个更新的小提琴

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27984403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档