如何创建属性指令以在 AngularJS 的元素中插入另一个属性指令

丹尼尔·桑托斯

我正在使用 Bootstrap 中的 CSS 类来突出显示有错误的字段,如下所示:

<div class="form-group" ng-class="{'has-error': $ctrl.form.name.$invalid && $ctrl.form.name.$touched}">
    <label for="name">Name</label>
    <input type="text" id="name" name="name" class="form-control" ng-model="$ctrl.client.name">
</div>

我不想为每个字段重复相同的 ng-class 属性,所以我试图创建一个属性指令,我可以在其中指定字段并让 angular 生成 ng-class:

<div class="form-group" has-error="$ctrl.form">

但是我无法获得角度来编译“新”ng-class:

 angular.module('myApp').directive('hasError', ($compiler)=> {
    return {
        restrict: 'A',
        compile: (element) => {
            var fieldExpression = element.attr('has-error');
            element.attr('ng-class', `{\'has-error\': ${fieldExpression}.$touched && ${fieldExpression}.$invalid }`);
            element.removeAttr('has-error');
            compilerService(element);
        }
    }
});
乔治亚

无需添加和编译ng-class指令,只需直接计算和操作链接函数中的类:

app.directive('hasError', () => {
    return {
        restrict: 'A',
        link: (scope,elem,attrs) => {
            scope.$watch(
               () => {
                  let expn = scope.$eval(attrs.hasError);
                  return expn && expn.$touched && expn.$invalid;
               },
               (value) => {
                    elem.removeClass('has-error');
                    value && elem.addClass('has-error');
               }
            );
        }
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS指令:将调用函数放在一个属性中,而不包含另一个属性

来自分类Dev

AngularJs从另一个指令中调用Controller

来自分类Dev

在Angularjs中的另一个指令模板中使用一个指令

来自分类Dev

获取指令函数属性的参数并在另一个contoller angularjs中对其进行更改

来自分类Dev

AngularJS-从另一个指令创建元素后,指令链接功能将不会触发

来自分类Dev

AngularJS:如何将一个指令编译为另一个指令?

来自分类Dev

AngularJS:如何将一个指令编译为另一个指令?

来自分类Dev

如何使用AngularJS中的自定义指令将一个html页面插入另一个html页面?

来自分类Dev

属性指令可在另一个指令中的元素上工作

来自分类Dev

将AngularJS指令嵌入另一个指令中

来自分类Dev

在angularjs中的另一个指令之前执行我的指令

来自分类Dev

AngularJS:在我的指令中应用另一个指令

来自分类Dev

在angularjs中的另一个指令之前执行我的指令

来自分类Dev

从angularJS中的另一个指令向HTML添加指令

来自分类Dev

AngularJS中的属性指令

来自分类Dev

如何在AngularJS指令中绑定属性?

来自分类Dev

AngularJS指令如何检测属性中的更改

来自分类Dev

AngularJS:如何监视指令中的属性?

来自分类Dev

AngularJS:在一个指令中从另一个指令更改了注入服务的作用域值

来自分类Dev

如何在 angularjs 中将一个指令的类应用到另一个指令?

来自分类Dev

AngularJS:如何在使用ng-repeat时将一个指令中的变量更改反映到另一个指令中

来自分类Dev

AngularJS:如何在使用ng-repeat时将一个指令中的变量更改反映到另一个指令中

来自分类Dev

AngularJS:无法将属性从第一个指令插入到第二个指令。(带示例)

来自分类Dev

如何创建AngularJs svg指令

来自分类Dev

从另一个指令获取指令的属性?

来自分类Dev

从另一个指令获取指令的属性?

来自分类Dev

AngularJS指令:如何通过属性传递数组?

来自分类Dev

使用AngularJS指令,如何将自定义模型从一个指令传递到另一个指令?

来自分类Dev

使用AngularJS指令,如何将自定义模型从一个指令传递到另一个指令?

Related 相关文章

  1. 1

    AngularJS指令:将调用函数放在一个属性中,而不包含另一个属性

  2. 2

    AngularJs从另一个指令中调用Controller

  3. 3

    在Angularjs中的另一个指令模板中使用一个指令

  4. 4

    获取指令函数属性的参数并在另一个contoller angularjs中对其进行更改

  5. 5

    AngularJS-从另一个指令创建元素后,指令链接功能将不会触发

  6. 6

    AngularJS:如何将一个指令编译为另一个指令?

  7. 7

    AngularJS:如何将一个指令编译为另一个指令?

  8. 8

    如何使用AngularJS中的自定义指令将一个html页面插入另一个html页面?

  9. 9

    属性指令可在另一个指令中的元素上工作

  10. 10

    将AngularJS指令嵌入另一个指令中

  11. 11

    在angularjs中的另一个指令之前执行我的指令

  12. 12

    AngularJS:在我的指令中应用另一个指令

  13. 13

    在angularjs中的另一个指令之前执行我的指令

  14. 14

    从angularJS中的另一个指令向HTML添加指令

  15. 15

    AngularJS中的属性指令

  16. 16

    如何在AngularJS指令中绑定属性?

  17. 17

    AngularJS指令如何检测属性中的更改

  18. 18

    AngularJS:如何监视指令中的属性?

  19. 19

    AngularJS:在一个指令中从另一个指令更改了注入服务的作用域值

  20. 20

    如何在 angularjs 中将一个指令的类应用到另一个指令?

  21. 21

    AngularJS:如何在使用ng-repeat时将一个指令中的变量更改反映到另一个指令中

  22. 22

    AngularJS:如何在使用ng-repeat时将一个指令中的变量更改反映到另一个指令中

  23. 23

    AngularJS:无法将属性从第一个指令插入到第二个指令。(带示例)

  24. 24

    如何创建AngularJs svg指令

  25. 25

    从另一个指令获取指令的属性?

  26. 26

    从另一个指令获取指令的属性?

  27. 27

    AngularJS指令:如何通过属性传递数组?

  28. 28

    使用AngularJS指令,如何将自定义模型从一个指令传递到另一个指令?

  29. 29

    使用AngularJS指令,如何将自定义模型从一个指令传递到另一个指令?

热门标签

归档