我将在文本框中获取字母数,并将其显示在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上有例子
答案 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; :)