У меня возникла следующая проблема: мой клиент хочет, чтобы моя угловая директива полностью меняла внешний вид на фокус. Это означает, что для меня мне нужно будет полностью заменить шаблон, когда пользователь нажмет этот элемент. Я не смог найти ответ в Интернете, поэтому решил спросить.AngularJS: Заменить шаблон элемента на фокус
Я попытался пройти «расфокусированное» шаблон в разделе шаблона директивы, и привязать к событию фокус в ссылке, как это:
post: function (scope, element, attrs) {
element.bind('focus',function(event){
element.html('<span..../span>');
$compile(element)(scope);
});
}
Но выдает ошибку (вход является «сфокусировано ")
Uncaught Error: [$compile:multidir] Multiple directives
[ngModel, ngModel] asking for 'ngModel' controller on: <input....
Решение должно быть совместимо с Angular 1.2, которое я должен использовать.
Я не знаю, насколько сложным является ваш шаблон, но одним из возможных подходов было бы просто иметь один шаблон и использовать 'ng-if' для изменения взгляда на фокус. – codemonkey
Я это рассмотрел, но есть небольшая проблема. Структура проверки формы, которую я должен использовать, должна иметь элемент «ввода» в качестве корневого элемента каждой директивы значения формы в момент отправки формы. В случае , будет ли вход или промежуток считать корневым элементом? –