在模板angularJs中从控制器填充id属性的值
populate value of id attribute from controller in template angularJs
我正在用angularJs
写一个directive
,下面有一个简单的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()}}'
,但都不起作用
有什么想法吗?我的代码出了什么问题,我该如何解决???
EDIT 1
我想我最好解释一下documnet.getElementbyId
返回null。。也许是我的错误,我没有提到它是为了让问题变得简单,我没有意识到documnet.getElementbyId
返回null。
您应该使用ng-attr
在属性中使用插值,因此在您的情况下ng-attr-id="{{c.inputId()}}"
@Martijn回答,实际上它可以与id
一起工作,不需要使用ng-attr-id
:)
问题是在角度绑定尚未完成时读取id,因此document.getElementbyId('#someId')
返回null
我在directive
的link
函数中使用$timeout
解决了这个问题
感谢这篇文章。。我不确定这是否是最好的解决方案,我也对我的解决方案不满意。
相关文章:
- tu如何将id放在填充了json数据的html表td上
- 如何访问svg内部id并让CSS更改该id的填充颜色
- 根据单击的元素填充同一页面中的表单,该元素的 ID 由 JSTL 生成
- 在模板angularJs中从控制器填充id属性的值
- 如何为主干模型填充 id
- 如果ID丢失,请使用jquery填充另一个隐藏字段中的行
- .Net c#Web浏览器填充输入,不带id或类名
- 如何获取由填充对象中的特定许可证 ID 创建的记录
- 当用户在输入id=“”中填充文本时,如何调用函数java脚本;value_ 1”;然后按键盘上的“Enter”
- 根据复选框id值填充输入字段
- Jquery选择器输入填充相同的id,但不同的数字
- AngularJS -从一个页面传递ID并填充到另一个页面
- 在jQuery Mobile中通过ID从数组中填充按钮值
- 如何附加点击事件在运行时,当我有一个数组中的所有id得到填充时,文档准备好了
- 根据主id从不同的表中填充列表
- 使用自动完成和相同的id填充多个字段
- 通过id javascript填充文本字段
- 根据ID号字段填充性别和出生日期字段
- 不知道为什么日期选择器小部件不能工作,也不知道为什么id选择器不能自动填充结果字段
- jstl:如果class="active",则用Id填充字符串