从模板angularJs中的控制器填充id属性的值

时间:2016-03-29 06:34:50

标签: javascript html angularjs angularjs-controlleras controlleras

我正在使用directive撰写angularJs,其中包含以下html templatecontorller as c的简单文字 的模板:

<p>Input id : {{c.inputId()}}</p> <!--this is for test,correct value is shown-->
<input id="{{c.inputId()}}" type="text" />

但问题是,即使测试的<p>标记显示正确的值,input id也无法获取值。
我已尝试过这些id="c.inputId()"id='c.inputId()'id="{{c.inputId()}}"id='{{c.inputId()}}',但这些都不起作用。
任何想法我的代码有什么问题,我该怎么解决这个问题?

编辑1
我认为我最好解释documnet.getElementbyId返回null ..可能是我错了,我没有提到它是为了使问题变得简单,我没有意识到documnet.getElementbyId返回null。

2 个答案:

答案 0 :(得分:1)

您应该使用ng-attr在属性中使用插值,因此在您的情况下ng-attr-id="{{c.inputId()}}"

答案 1 :(得分:0)

到@Martijn回答,实际上它可以与id一起使用而且不需要使用ng-attr-id :)

问题是在角度绑定时读取id尚未完成,因此document.getElementbyId('#someId')返回null。

我已经使用我$timeout link函数directive中的 exporting: { enabled: false } 解决了问题
感谢this post ..我不确定这是否是最好的解决方案,而且我对我的解决方案也不满意。