相关疑难解决方法(0)

将属性从custom指令复制到输入

我有一个自定义的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

5
推荐指数
1
解决办法
1790
查看次数

标签 统计

angularjs ×1