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

时间:2016-04-04 07:50:14

标签: angularjs angular-directive

我将在文本框中获取字母数,并将其显示在div标签中,该标签由element指令表示。

  <input type="text" ng-model="name">
  <div counter-directive max-length="100" ng-model="name"></div>

div标签必须显示如下:12/100(12是我们输入的内容,100是max-length的值)

问题是,我不知道如何获取max-length的值。

here我在jsfiddle上有例子

2 个答案:

答案 0 :(得分:3)

首先,检查你的拼写。您在问题中使用了lenght几次。

您可以从传递到max-length函数的attrs对象中获取link属性。

link: function (scope, element, attrs) {
    var foo = attrs.maxLength;
}

答案 1 :(得分:2)

你必须这样做:

app.directive('counterDirective', function () {

return {

    restrict: 'A',
    require: 'ngModel',
    scope: { maxLength:'=', ngModel:'&' },
    link: function (scope, element, attrs) {

            console.log(scope.maxLength);

        scope.$watch(scope.ngModel, function (value) {

            if (value) {

                var newValue = value.length;
                console.log(value);
                element[0].innerText = newValue;
            }
        });

    }
}

});

我认为你必须更换&#39; lenght&#39;长度&#39;长度&#39; :)