Как использовать переменную в контроллере Js для моего HTML

0

Я хочу подтвердить свою форму с помощью ng-disable.

Поэтому моя функция проверяет правильность введенного вами идентификатора.
Также мне нужно будет проверить свою форму, если все входы будут заполнены.

Это моя функция:

vm.validateid = function(){
    console.log('here');
    var objvar = {
        'id': vm.data.referalid,
        'referral2': true,
    };

    $http.post(ConfigCnst.restUrl,objvar).then(function(res) {
        if (res.data.status !== true) {   

             alert('Invalid ID');
             vm.data.referalName = 'Invalid ID';
             vlid = res.data.status;
             console.log(vlid);

        } else {

            alert('ID Validated');
            vm.data.referalName = JSON.stringify(res.data.data.name);
            vlid = res.data.status;
            console.log(vlid);
        }

    });
}

Я хочу принять vlid. Он будет либо содержать true, либо false.

Это мой ng-disable:

 <button ng-disabled="registerForm.$invalid" 
         ng-click="register.submit()"  
         class="button button-block button-positive">Confirm</button>

Я хочу проверить как registerForm и vlid как false.
Есть ли способ ссылаться на мой vlid от моего контроллера?

  • 0
    all are filled up ... если использовать валидационные атрибуты / директивы, форма останется $invalid=true до тех пор, пока требования не будут сопоставлены во всех полях и каждое поле не станет $valid=true . Другими словами, вам не нужно проверять снова в клиенте .... но всегда повторная проверка на сервере
  • 0
    да, поэтому, как только у меня будет действительная форма, мне также нужно будет получить действительное удостоверение личности. моя функция проверяет мой идентификатор, но затем я не знаю, как добавить этот статус (действительный идентификатор) в форму ...
Показать ещё 1 комментарий

3 ответа

2
Лучший ответ

Невозможность увидеть, где/как определяется ваш контроллер, делает это немного сложнее, но да, вы можете получить доступ к переменным области видимости с контроллера.
Итак, есть два возможных способа, которыми может быть определен ваш контроллер:

Использование контроллеров:
У вас будет myController as someName в вашем html.
Затем вы можете передать someName.vlid своей функции, а затем привязать это к res.data.status

Привязка к $ scope:
В вашем контроллере у вас будет параметр $scope
Затем вы можете использовать $scope.vlid в своем контроллере или ng-model='vlid' в своем html, передать это своей функции и обрабатывать ее таким же образом.

Если вы определили эту функцию в своем контроллере, вы можете использовать ng-model='vlid' или ng-model='someName.vlid' зависимости от того, как определяется ваш контроллер.

  • 0
    довольно ясно, OP использует синтаксис controllerAs ... использует vm как this
2

Установите переменную vlid в переменную $scope в вашем контроллере ($scope.vlid=vlid). Затем вы можете получить доступ к нему в своем представлении html. Вам нужно обновить выражение ng-disabled чтобы включить условие для vlid.

<button ng-disabled="registerForm.$invalid && !vlid" ng-click="register.submit()"  class="button button-block button-positive">Confirm </button>
0

вы можете ссылаться на vlid, используя $ scope.

vm.validateid = function() {
  console.log('here');
  var objvar = {
    'id': vm.data.referalid,
    'referral2': true,
  };
  $http.post(ConfigCnst.restUrl, objvar).then(function(res) {
    if (res.data.status !== true) {

      alert('Invalid ID');
      vm.data.referalName = 'Invalid ID';
      vlid = res.data.status;
      $scope.vlid_status = res.data.staus;
      console.log(vlid);
    } else {

      alert('ID Validated');
      vm.data.referalName = JSON.stringify(res.data.data.name);
      vlid = res.data.status;
      $scope.vlid_status = res.data.staus;

      console.log(vlid);
    }

  });
}

HTML

<button ng-disabled="registerForm.$invalid && vlid_status === false" ng-click="register.submit()"  class="button button-block button-positive">Confirm </button>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню