假设:
<radio radio-name="login"></radio>
指令:
app.directive('radio', function () {
return {
restrict: 'E',
replace: true,
transclude: true,
scope: {
radioName: '@'
},
template: '<label></label>',
link: function ( ... ) {}
}
});
我希望得到的标记为:
<label data-radio-name="login" ...>
而不是当前输出的内容:
<label radio-name="login" ...>
我想在初始标记上保留'radio-name',这样你就可以告诉它是一个自定义指令,但我希望得到的transcluded / replacement包含语义数据属性'data-radio-name'。感谢。
答案 0 :(得分:1)
将radioName
模式从@
更改为=
并将模板设置为空:
template: '<label data-radio-name=""></label>'
类似的东西:
.directive('radio', function () {
return {
restrict: 'E',
replace: true,
transclude: true,
scope: {
radioName: '='
},
template: '<label data-radio-name=""></label>',
link: function ( ) {}
}
});
输出:
<label data-radio-name="login"></label>
演示 Fiddle