Как удалить / добавить атрибут из формы ввода текстовых полей с помощью ng-клика по гиперссылке

0

Я пытаюсь создать директиву, которая удалит атрибут disabled = "disabled" из всех полей ввода, содержащихся в форме, щелкнув ссылку редактирования.

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я нажимаю на ссылку, хотя код директивы вызывается, я не передаю поля формы, единственное, к чему имеет доступ код, - это элемент ссылки.

Если бы кто-нибудь мог помочь мне сделать эту работу, это было бы мило.

Вот работа, которую я сделал до сих пор.

Мой html с директивой в качестве атрибута:

<a title="Edit record" ab-toggle-fields ng-click="pc.toggle()">
    <i class="fa fa-fw fa-pencil"></i>
</a>

Функция переключения в контроллере, я не уверен, нужна ли мне эта часть, взяла ее из примера:

vm.toggle = function () {
};

Код директивы:

    (function (define, angular) {
    'use strict';

    define(function () {
        var toggleFieldsDirective = function () {
            return {
                scope: {
                    'ngClick': '&'
                },                
                link: function (scope, elem, attrs) {

                    elem.bind('click', function () {

                        if (scope.ngClick){
                            var fields = elem.find(':input').not('button');
                            angular.forEach(fields, function (field) {
                                angular.element(field).removeAttr('disabled');
                            });
                        }

                    });
                }
            }
        };
            return [
                toggleFieldsDirective
            ];
        });
})(define, angular);

1 ответ

0

На самом деле самым чистым способом является простое использование директивы ng-disabled на ваших входах. Установите значение для некоторой переменной, которая будет переключаться по щелчку вашей ссылки. Как это:

<body>
  <a href="#" title="Edit record" ng-click="isDisabled = !isDisabled" ng-init="isDisabled=false">
    <i class="fa fa-fw fa-pencil"></i>
  </a>
  <div>
    <input name="inputA" type="text" ng-disabled="isDisabled" />
  </div>
  <div>
    <input name="inputB" type="text" ng-disabled="isDisabled" />
  </div>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню