В устаревшем проекте я хочу создать новую директиву, использующую transclude.
Урезанная версия кода директивы:
app.directive('controlWrap', function() {
return {
restrict: 'E',
transclude: true,
scope: { label: "@" },
templateUrl: "control-wrap-template.html"
}
})
А шаблон такой:
<div>
<label>{{label}}</label>
<div>
<ng-transclude></ng-transclude>
</div>
</div>
Эта директива используется так
<control-wrap label="Just a example">
<input type="text" ng-model="input" />
</control-wrap>
Test: {{input}}
Я знаю, что обходной путь заключается в использовании объекта в области вместо примитивного значения (ng-модель внутри ng-transclude). Но это не вариант для меня. Это уродливый, плохо закодированный устаревший код, который опирается на эти атрибуты непосредственно в области видимости.
Есть ли что-то, что я могу сделать в директиве, чтобы html работал без изменений?