Угловая область потери в шаблоне ng-формы - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь это сделать,

    <div ng-form="sadadPaymentForm" class="sadadPaymentForm"  ng-if="vm.isSadadEnabled" name="sadadPaymentForm"  validate-popup-form>
     <div ng-if="vm.isSadadEnabled">
       <div class="credit-debit-card-div" ng-include="'sadadTemplate'" ng-show="vm.view_tab == 'tab7'">
       </div>
    </div>
   </div>
   <span ng-show="vm.view_tab=='tab7' && vm.isSadadEnabled">
     <button type="button" class="primary inline pay-now" id="paynowbtn" ng-disabled="!vm.checked3 || vm.sadadPaymentForm.$invalid" ng-click="vm.payByVoucher();" analytics-on="click" analytics-event="uaevent" analytics-eventcategory="Payment" analytics-eventaction="PayNow"
             analytics-eventlabel="Pay now">
               Pay by sadad
     </button>
   </span>

И, мой шаблон в другом HTML-файле

  <script type="text/ng-template" id="sadadTemplate">
    <input fieldlabel="Online Payment ID" type="text" name="onlinePaymentId" ng-model="vm.sadadpayment.onlinePaymentId"  class="form-control input-type-text"
                    ng-model-options="{ debounce: 100 }" validationKey-required="PaymentAdress1IsRequired" required maxlength="200">
  </script>

Здесь vm.sadadPaymentForm.$invalid не работает, но проверка отдельных компонентов работает при размытии наразмытие ввода.

НО, если я добавлю vm к ng-форме, т.е. вот так

    <div ng-form="vm.sadadPaymentForm" class="sadadPaymentForm"  ng-if="vm.isSadadEnabled" name="vm.sadadPaymentForm"  validate-popup-form>
     <div ng-if="vm.isSadadEnabled">
       <div class="credit-debit-card-div" ng-include="'sadadTemplate'" ng-show="vm.view_tab == 'tab7'">
       </div>
    </div>
   </div>

Здесь vm.sadadPaymentForm.$invalid работает, но проверка отдельных компонентов завершается неудачно при размытии ввода, например,, TypeError: Невозможно прочитать свойство 'onlinePaymentId' с неопределенным значением

Помогите мне понять, как можно сделать так, чтобы как индивидуальная проверка, так и окончательная проверка формы работали вместе.Нужно решение с 1.5.

Ответы [ 2 ]

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

Хорошо, обнаружил проблему, в основном это проблема с областью действия.

заменил

ng-if="vm.isSadadEnabled"

на

ng-show="vm.isSadadEnabled"

ng-if препятствовал отображению DOMубивая тем самым переменную области видимости vm

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

Форма name атрибут должен иметь sadadPaymentForm несмотря на vm.sadadPaymentForm.Поскольку у вас нет правильной формы name, проверка не пройдена.

name="vm.sadadPaymentForm" 

должно быть

name="sadadPaymentForm" 
...