为Angular Directive添加必需

时间:2015-07-28 20:24:23

标签: javascript angularjs angularjs-directive

我有以下Angular指令:

Abstandlineedit->setProperty("id", someValue);
connect(Abstandlineedit, SIGNAL(textChanged(const QString &)), this, SLOT(slotLineEdit(const QString&)));
....
void MainWindow::slotLineEdit(const QString& s)
{
  int id = sender()->property("id").toInt();
//use id
...
}

使用以下模板:

app.directive('basicInput', function () {
    return {
        restrict: 'AE',
        templateUrl: 'DirectiveTemplates/BasicInput.html',
        replace: true,
        scope: {
            ngModel: '=',
            visual: '@',
            placeholder: '@',
            pattern: '=',
            ngChange: '='            
        }
    };
});

我在html中称之为(例如):

<ng-form name="basicInput">
    <div class="form-group">
        <label for="input">{{visual}}</label>
        <input type="text" class="form-control" name="input" ng-model="ngModel" placeholder="{{placeholder}}" required ng-pattern="pattern">
        <div ng-messages="basicInput.input.$error" class="help-block">
            <span ng-message="required"> Required</span>
            <span ng-message="pattern"> Invalid Characters or is too short</span>
        </div>
    </div>
</ng-form>

我的问题是,如何从模板中选择输入标签上的'required'?

2 个答案:

答案 0 :(得分:2)

Try this:

Directive:

scope: {
        ngModel: '=',
        visual: '@',
        placeholder: '@',
        pattern: '=',
        ngChange: '=',
        isRequired: '='
    }

Template:

<input type="text" class="form-control" ng-required="isRequired" name="input" ng-model="ngModel" placeholder="{{placeholder}}" ng-pattern="pattern">

Usage:

<basic-input ng-model="formData.official_name" is-required="false" data-visual="Official Name" data-placeholder="Name" pattern="regex.short"></basic-input>

答案 1 :(得分:0)

ngRequired 您可以根据属性

将ng-required属性设置为true或false

docs:https://docs.angularjs.org/api/ng/directive/input