如何在Angular指令中侦听元素的属性更改?

vdegenne

这是一个plunker,它很好地展示了我正在尝试做的事情。

我有一个指令!孤立的范围具有要更改的属性

<div ng-init="environment='natural'">
  <input ng-model=environment>
  <chameleon env="{{ environment }}"></chameleon>
</div>

我希望我的指令响应全局范围的更改:

angular.module('app', []).directive('chameleon', function () { return {

  template: 'I am {{ color }}',
  scope: {} // isolated

  ,link: function (scope, element, attrs) {

    scope.$watch('env', function () {
       scope.color = getColor();
    });

    function getColor () {
       switch (attrs.env) {
          case 'excited': return 'red';
          ...
          case 'natural':
          default: return 'green';
       }
    }

        /* here I need something similar to this not-working code :
         *   element.on('attributeChange', function () {
         *      scope.env = attrs.env
         *   });
         */
  }

}});

我知道我可以使用隔离范围来绑定周围范围的值,例如

scope: {
  env: '='
}

但是我真的需要有一个独立的组件,因为属性的值env不仅会从模型中更改。

随意分叉我的朋克。

Pankaj Parkar

您需要使用attrs.$observe与相同的功能$watch它作用于{{}}价值,价值的变化将调用该$observe函数。

代码

attrs.$observe('env', function() {
     scope.color = getColor();
});

Demo Plunkr

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Dart中侦听对象中的Map属性更改

来自分类Dev

如何在Angular指令中将属性附加到元素

来自分类Dev

如何在Qt中侦听QDynamicPropertyChangeEvent以检测属性更改?

来自分类Dev

动态更改Angular指令元素属性

来自分类Dev

如何从Angular属性指令中访问元素HTML?

来自分类Dev

angularJS如何在指令的链接中更改属性

来自分类Dev

如何在Angular指令中访问dom元素

来自分类Dev

在Angular中,如何在指令中设置一个当属性值更改时触发的手表?

来自分类Dev

如何在angular 2.0中创建拖动属性指令?

来自分类Dev

如何在templateUrl HTML内容中访问angular指令的属性

来自分类Dev

Angular指令如何向元素添加属性?

来自分类Dev

动态更改Angular指令中的html元素

来自分类Dev

如何在Angular2 Typescript中更改HTML元素的readonly和required属性?

来自分类Dev

在Angular指令中更改css属性值

来自分类Dev

如何在Polymer中的自定义元素属性中添加事件侦听器?

来自分类Dev

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

来自分类Dev

用于按钮禁用属性更改的 Angular 5 侦听器或指令

来自分类Dev

在Angular中,如何从指令获取元素的宽度?

来自分类Dev

如何从[Angular 2]中的指令检测图像对象的src属性中的更改?

来自分类Dev

如何在指令中显示对象的属性?

来自分类Dev

如何在指令的attrs中监视属性

来自分类Dev

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

来自分类Dev

如何在指令的attrs中监视属性

来自分类Dev

如何在AngularJS指令中引用元素的作用域/模型属性?

来自分类Dev

如何在自定义指令的模板属性中定义多个元素

来自分类Dev

如何在Angular中更改svg元素的颜色?

来自分类Dev

Angular:在元素指令上添加属性指令

来自分类Dev

Angular:在元素指令上添加属性指令

来自分类Dev

如何在Rails Slim模板中的输入中添加angular属性指令?

Related 相关文章

  1. 1

    如何在Dart中侦听对象中的Map属性更改

  2. 2

    如何在Angular指令中将属性附加到元素

  3. 3

    如何在Qt中侦听QDynamicPropertyChangeEvent以检测属性更改?

  4. 4

    动态更改Angular指令元素属性

  5. 5

    如何从Angular属性指令中访问元素HTML?

  6. 6

    angularJS如何在指令的链接中更改属性

  7. 7

    如何在Angular指令中访问dom元素

  8. 8

    在Angular中,如何在指令中设置一个当属性值更改时触发的手表?

  9. 9

    如何在angular 2.0中创建拖动属性指令?

  10. 10

    如何在templateUrl HTML内容中访问angular指令的属性

  11. 11

    Angular指令如何向元素添加属性?

  12. 12

    动态更改Angular指令中的html元素

  13. 13

    如何在Angular2 Typescript中更改HTML元素的readonly和required属性?

  14. 14

    在Angular指令中更改css属性值

  15. 15

    如何在Polymer中的自定义元素属性中添加事件侦听器?

  16. 16

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

  17. 17

    用于按钮禁用属性更改的 Angular 5 侦听器或指令

  18. 18

    在Angular中,如何从指令获取元素的宽度?

  19. 19

    如何从[Angular 2]中的指令检测图像对象的src属性中的更改?

  20. 20

    如何在指令中显示对象的属性?

  21. 21

    如何在指令的attrs中监视属性

  22. 22

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

  23. 23

    如何在指令的attrs中监视属性

  24. 24

    如何在AngularJS指令中引用元素的作用域/模型属性?

  25. 25

    如何在自定义指令的模板属性中定义多个元素

  26. 26

    如何在Angular中更改svg元素的颜色?

  27. 27

    Angular:在元素指令上添加属性指令

  28. 28

    Angular:在元素指令上添加属性指令

  29. 29

    如何在Rails Slim模板中的输入中添加angular属性指令?

热门标签

归档