向嵌入的元素添加属性

Adding an attribute to a transcluded element

我有一个表单指令,它扩展了我维护的 HTML 表单标签的功能,可以向它添加行为。下面给出了它的一种用法,

     return {
        restrict: 'E',
        replace: true,
        transclude: 'element',
        template: '<fieldset ng-disabled="formLoading" ng-transclude></fieldset>',
        link: function (scope, elem, attr, ctrl, transclude) {
            // elem.on('submit', function () {
            //     $rootScope.formLoading = true;
            // });
        }
    }

上面我将表单包含在字段集中,这样用户就无法在表单加载时与表单交互。

现在,如果我想将 autocomplete off 属性添加到嵌入的表单中,正确的方法是什么?

好吧,这对我有用。

        link: function (scope, elem, attr, ctrl, transclude) {
            angular.element(elem[0].firstChild).attr('autocomplete', 'off')
        }

这里嵌入的元素是元素的第一个子元素。