angularjs自定义指令重复属性

我需要为每个元素添加一个属性,该属性与ngShow的倒数(对于屏幕阅读器)相同。我试图提出自定义指令来实现相同的目标,并避免诸如

<div id="1" ng-show="myform.somecondition" aria-disabled="!myform.somecondition">

我的方法如下

<div id="1" ng-show="myform.somecondition" ng-aria>


myapp.directive('ngAria', function ($compile) {
  return {
    restrict: 'A',
    replace: false, 
terminal: true, //this setting is important to stop loop
priority: 1000, //this setting is important to make sure it executes before other directives
compile: function compile(element, attrs) {
  element.removeAttr("ng-aria");
  element.attr('aria-disabled', !attrs.ngShow);
  return {
    pre: function preLink(scope, iElement, iAttrs, controller) {  },
    post: function postLink(scope, iElement, iAttrs, controller) {  
      $compile(iElement)(scope);
    }
  };
}
 };
});

呈现页面时,元素将正确呈现。但是,在随后更改条件元素(myform.somecondition)时,禁用aria的功能不会得到更新。请提出如何解决该问题的建议。谢谢。

马克·克莱恩

您可以简化指令,包括remove terminal: true,这会导致您所表达的问题。

在本地范围内的$ watch内,用于$eval评估其中包含的表达式ng-show并取反它的值aria-disabled

.directive('ngAria', function ($compile) {
  return {
    restrict: 'A',
    replace: false, 
    priority: 1000, 
    link: function postLink(scope, elem, attrs) {  
      elem.removeAttr("ng-aria");
      scope.$watch(attrs.ngShow, function(){
        elem.attr('aria-disabled', !scope.$eval(attrs.ngShow));  
      });
    }
 };
});

演示版

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

angularjs自定义指令值更改

来自分类Dev

AngularJS自定义指令双向绑定

来自分类Dev

复选框上ng-indeterminate属性的AngularJS自定义指令

来自分类Dev

使用AngularJS创建自定义属性

来自分类Dev

AngularJS:使用angular属性指令将元素包装到自定义模板中

来自分类Dev

带有隐藏功能的AngularJS自定义指令

来自分类Dev

如何判断AngularJS中缺少自定义指令属性的时间

来自分类Dev

AngularJS麻烦并设置了自定义中继器指令

来自分类Dev

如何在angularjs自定义指令的模板中获取属性值?

来自分类Dev

通过属性的angularjs自定义指令条件templateUrl

来自分类Dev

选择的AngularJS自定义指令

来自分类Dev

AngularJS:如何将属性设置为自定义指令

来自分类Dev

AngularJS-在templateUrl中具有属性的自定义指令

来自分类Dev

在Angularjs自定义指令中获取属性的值

来自分类Dev

从AngularJS自定义指令触发模糊事件

来自分类Dev

自定义指令

来自分类Dev

AngularJS自定义指令

来自分类Dev

AngularJS:无法从自定义指令属性中检索值以在自定义指令中进行解析

来自分类Dev

多个自定义指令angularjs

来自分类Dev

AngularJS:自定义指令内的ngView

来自分类Dev

AngularJS动态自定义指令问题

来自分类Dev

更改自定义指令的属性

来自分类Dev

自定义元素指令和属性

来自分类Dev

在Angularjs自定义指令中获取属性的值

来自分类Dev

Angularjs v1:是否可以创建数据自定义指令属性?

来自分类Dev

AngularJS-在templateUrl中具有属性的自定义指令

来自分类Dev

AngularJs 多个自定义指令失败

来自分类Dev

AngularJS 自定义生成指令动态属性绑定

来自分类Dev

重复内的自定义指令

Related 相关文章

热门标签

归档