AngularJS - 在运行时添加属性

时间:2014-06-27 13:52:30

标签: angularjs

我正在开发一个AngularJS应用程序。我正在尝试在运行时将autofocus属性添加到元素。我想这样做的原因是我可以在几个元素之一上设置这个属性。如何通过AngularJS指令向元素添加HTML属性?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以在$compile.directive.Attributes对象上使用$ set方法。请参阅文档here。这将创建一个AngularJS将识别的新属性。请记住使用属性的规范化(camelCase)版本。您可以在指令的链接功能中执行此操作。

答案 1 :(得分:0)

该指令:

(function(){
  angular.module('ng').directive('dynamicAutoFocus', function(){
    return {
      restrict: 'A',
      link: function(scope, element, attrs){
        scope.$watch(attrs.dynamicAutoFocus, function(id){

          if(angular.isDefined(id)){
            var target = document.getElementById(id);
            if(target){
              target.focus();
            }
          }
        });
      }
    };
  });
})();

Plunker