我有一个自定义的driective,用div包装输入并添加一个标签.
<my-input label="My Label" name="myname" ng-model="mymodel" ng-pattern="/^[a-z]+$/">
Run Code Online (Sandbox Code Playgroud)
我想可选地使用所有可能的角度指令来输入像ng-pattern,ng-minlength等.现在它看起来像这样:
app.directive('myInput',[function () {
return {
restrict: "E",
replace: true,
scope: {
ngModel: '=',
name: '@',
ngMinlength: '=',
ngMaxlength: '=',
ngPattern: '@',
label: '@'
},
compile: function(element, attrs){
if(!_.isUndefined(attrs['ngMinlength'])) {
element.find('input').attr('ng-minlength', 'ngMinlength');
}
if(!_.isUndefined(attrs['ngMaxlength'])) {
element.find('input').attr('ng-maxlength', 'ngMaxlength');
}
if(!_.isUndefined(attrs['ngPattern'])) {
element.find('input').attr('ng-pattern', attrs['ngPattern']);
}
},
template: '<div class="form-group">'
+ '<label>{{ label | translate }}</label>'
+ '<div>'
+ '<input type="text" class="form-control input-sm" name="{{ name }}" ng-model="ngModel">'
+ '</div></div>'
};
}]);
Run Code Online (Sandbox Code Playgroud)
问题是我想要使用ng-pattern与输入中的ng-pattern完全相同,所以我希望有可能在ng-pattern中使用regexp,并且还可以使用pattern($scope.mypattern = /^[a-z]+$/; ... …
angularjs ×1