Как условно добавить директиву в AngularJS - PullRequest
0 голосов
/ 07 ноября 2018

Подскажите, пожалуйста, как условно добавить директиву в угловых js.На самом деле я генерирую свое представление из JSON Я хочу добавить пользовательскую директиву к только для некоторых полей , которые имеют checkInput property.Example Я создаю имя пользовательской директивы "checkInput" Я хочу добавить это в поле ввода, имеющее свойство "checkInput" true

"First Name": {
    "value": "",
    "type": "FIELD",
    "editable": true,
    "dataType": "",
     "required":true,
     "checkInput":true
  },

подскажите, пожалуйста, как я добавлю это

вот мой код http://plnkr.co/edit/YmIMEGHm7E48wZQT9ZSb?p=preview

.directive("checkInput", function() {
  return {
 require: "ngModel",
 //name your scope key and value.

 link: function(scope, element, attributes, modelVal) {

    modelVal.$validators.checkInput= function(val) {
       var phonenoRegex = /^[0-9]+$/;
       if (val.match(phonenoRegex))
       {
      return false
       }
       else{
         return true
       }

        console.log(val);

    };

    scope.$watch("val", function() {
        modelVal.$validate();
    });

}

};
});

Обновление

В моем примере только первое имя имеет "checkInput": свойство true . Поэтому я хочу добавить эту директиву только в Имя . Не все поля ввода

какое-нибудь обновление?

любое обновление

1 Ответ

0 голосов
/ 07 ноября 2018

@ Joy Вы хотите проверить только Имя. Вы можете использовать эту работу вокруг.

<div ng-if="(key=='First Name')">
    <input type="text" name="{{key}}" class="form-control" ng-model="value.value" ng-required="value.required && isSubmitClicked" check-input>
</div>
<div ng-if="(key!='First Name')">
    <input type="text" name="{{key}}" class="form-control" ng-model="value.value" ng-required="value.required && isSubmitClicked" >
</div>

Надеюсь, я ответил на ваш вопрос. Примите ответ, и если у вас возникнет путаница, дайте мне знать. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...