我正在使用directive
撰写angularJs
,其中包含以下html template
和contorller 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。
答案 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 ..我不确定这是否是最好的解决方案,而且我对我的解决方案也不满意。