有条件添加属性的调用指令

时间:2014-12-15 09:59:29

标签: angularjs angularjs-directive

我想调用一个指令,如果在一个元素上有条件地添加了属性,但我没有得到任何解决方案。

HTML

    <input type="text" max-length="{{max_length}}" myElement/>

以下是指令

App.directive('maxlengthCounter', function($compile, $parse) {

return {
    require : 'ngModel',
    scope : {},
    link : function(scope, element, attrs, ngModel) {
        var maxLength = parseInt(attrs.maxLength);

        if (maxLength) {
            element.bind("keyup", function() {
                var value = element[0].value;
                element.val(value.substr(0, maxLength));            

            });
            }  

    }
    };
    });

并有条件地在元素上添加属性

App.directive('myElement',function(){
return {
restrict:"A",
    scope : {},
    link : function(scope, element, attrs, ngModel) {
  (attrs.max_length>0?angular.element(element).attr("maxlength-  
 counter",""):'');
  $compile(element.html())(scope);
  }
  });

1 个答案:

答案 0 :(得分:0)

您的代码在条件调用上很好,但在您的代码中有各种错误

  1. <input type="text" myElement应为my-element

  2. (attrs.max_length > 0应为maxLength

  3. 你为什么这么做element[0].children[0][index]?无论您只需要使用element[0]

  4. 继续工作Demo