我想调用一个指令,如果在一个元素上有条件地添加了属性,但我没有得到任何解决方案。
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);
}
});
答案 0 :(得分:0)
您的代码在条件调用上很好,但在您的代码中有各种错误
<input type="text" myElement
应为my-element
(attrs.max_length > 0
应为maxLength
。
你为什么这么做element[0].children[0][index]
?无论您只需要使用element[0]
继续工作Demo