Прежде всего это мой plunker: https://plnkr.co/edit/JbG6vlSbeWrBcmYhmhF1?p=previewПопытка сделать нестандартную директиву с угловыми 1.4.9, но застрял с функцией связи
Я пытаюсь сделать директиву, чтобы добавить плавающую ярлык, как показано в этом example к любому входу поле.
Например, у меня есть следующие поля ввода:
<input floating-label placeholder="Better field" type="text" class="form-control" ng-model="floatingDirective"/>
floating-label
должны работать таким образом, что она будет расширять его на следующий код:
<div class="field">
<label ng-show="betterField" class="show-hide">Better field</label>
<input type="text" class="form-control" ng-model="betterField" placeholder="Better field"/>
</div>
И я не могу этого добиться , это моя директива до сих пор:
.directive('floatingLabel', function ($compile) {
return {
restrict: 'A',
require: 'ngModel',
scope: {
ngModel: '='
},
link: function(scope, element, attrs, ctrl, transclude) {
var wrapper = '<div class="field">' +
'</div>';
element.after($compile('<label ng-show="' + attrs.ngModel + '" class="show-hide">' + attrs.placeholder + '</label>')(scope));
element.wrap(wrapper);
}
}}
)
Невозможно понять, как объединить wrap
, prepend
и append
, чтобы получить желаемую структуру и как сделать ng-show
работать с ng-model
.
Заранее спасибо.
На самом деле ваша работа решение, и я думал об этом, но я хотел бы сделать это в способ, который я намеревался, иначе наша команда должна выполнить большую работу, чтобы заменить все поля ввода, а также для других элементов формы мне нужно сделать другие директивы. Я приму ваш ответ через несколько дней, если никто не даст другого. – Anatoly