【发布时间】:2013-12-08 00:47:55
【问题描述】:
我正在尝试制作一个自动将标签添加到输入字段的指令,所以我想要实现的是:
<!-- angular -->
<label-input label="some label:" id="some-random-id">
<input type="text" maxlength="5" />
</label-input>
并将其转换为:
<!-- html -->
<label for="some-random-id">
some label: <input id="some-random-id" type="text" maxlength="5" />
</label>
我已经走了这么远,但我不明白你应该如何修改通过嵌入添加的元素,或者你应该如何修改?
app.directive('labelInput', function () {
return {
restrict: 'E',
transclude: true,
scope: {
id: '@',
label: '@',
},
template: '<label for="{{id}}">{{label}}</label><span ng-transclude></span>',
};
});
我主要担心的是我不想写两次 id,最好是,如果 id 没有传递,让它自动生成,也就是:
<label-input><input type="text" /></label-input>
转换为:
<label for="some-random-id-1231231"></label><input type="text" id="some-random-id-1231231" />
【问题讨论】:
标签: javascript angularjs angularjs-directive