错误:$ parse:syntax使用ng-submit语法错误

时间:2018-05-17 10:29:56

标签: javascript html angularjs

访问控制器中的动态表单对象

有没有办法通过传递名称来访问控制器中的表单对象?

我的html中有动态表单,其名称类似于name="namedForm_{{$index}}"

现在我可以在$index函数调用中传递ng-submit以在控制器中生成表单名称。所以它将是namedForm_1namedForm_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 :(得分:1)

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表达式混合是不明智的。

有关详细信息,请参阅