Ошибка: $ parse: синтаксическая ошибка синтаксиса с ng-submit - PullRequest
0 голосов
/ 17 мая 2018

Доступ к динамическому объекту формы в контроллере

Есть ли способ получить доступ к объекту формы в контроллере, просто передав имя?

У меня есть динамические формы внутри моего html, имя которого похоже на name="namedForm_{{$index}}".

Теперь я могу передать вызов функции $index in ng-submit для генерации имени формы в контроллере.Таким образом, это будет namedForm_1 или namedForm_2 и т. Д. Как получить объект формы в контроллере для проверки правильности формы там?

Попытка передачи достоверности в качестве третьего аргумента здесь путем проверки условия.Но выражение namedForm_{{$index}}.$valid ломается.

<form data-toggle="validator" class="formClass" form-submit-validation=""
      name="namedForm_{{$index}}" id="namedForm_{{$index}}"
      ng-submit="namedForm_{{$index}}.$valid == true ? vm.submitNamedForm($index, widget, true) : vm.submitNamedForm($index, widget, false)"
      autocomplete="off" novalidate>
</form>

Или другие решения?

Ошибка с консоли:

error

1 Ответ

0 голосов
/ 17 мая 2018

Использовать метод доступа к свойству в контексте this:

<form data-toggle="validator" class="formClass" form-submit-validation=""
      name="namedForm_{{$index}}" id="namedForm_{{$index}}"
      ̶n̶g̶-̶s̶u̶b̶m̶i̶t̶=̶"̶n̶a̶m̶e̶d̶F̶o̶r̶m̶_̶{̶{̶$̶i̶n̶d̶e̶x̶}̶}̶.̶$̶v̶a̶l̶i̶d̶ ̶=̶=̶ ̶t̶r̶u̶e̶ ̶?̶ ̶v̶m̶.̶s̶u̶b̶m̶i̶t̶N̶a̶m̶e̶d̶F̶o̶r̶m̶(̶$̶i̶n̶d̶e̶x̶,̶ ̶w̶i̶d̶g̶e̶t̶,̶ ̶t̶r̶u̶e̶)̶ ̶:̶ ̶v̶m̶.̶s̶u̶b̶m̶i̶t̶N̶a̶m̶e̶d̶F̶o̶r̶m̶(̶$̶i̶n̶d̶e̶x̶,̶ ̶w̶i̶d̶g̶e̶t̶,̶ ̶f̶a̶l̶s̶e̶)̶"̶
      ng-submit="vm.submitNamedForm($index, widget, this['namedForm_'+$index].$valid)"
      autocomplete="off" novalidate>
</form>

Для директивы ng-submit требуется выражение AngularJS, и нет смысла смешивать интерполяцию {{ }} с выражениями Angular.

Для получения дополнительной информации см.

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