表格在Angular 1.3的范围内未定义

时间:2014-11-28 05:54:38

标签: angularjs

如果这是我做的事情,我不会这样做,但是一旦我升级到Angular 1.3,我的范围就不再定义该表单了。我的HTML是

<div some-dir>

    <form name="myForm">
    <!-- Form stuff here -->
    <button ng-click="submit();">
    </form>

</div>

submit功能

scope.submit = function() {
    console.log(scope.myForm);
}

这会返回undefined。我在任何地方都没有ng-ifng-repeat。此特定指令中只有一个指令和一个范围。同样,这一切都在我升级到Angular 1.3

之前一直有效

3 个答案:

答案 0 :(得分:11)

可以通过将表单数据放入某个范围对象来解决问题:

  <form name="myForms.firstForm">
    <!-- Form stuff here -->
    <button ng-click="submit();">
  </form>

而不是:

scope.myForms = {};
scope.submit = function() {
    console.log(scope.myForms.firstForm);
}

comment中的更多信息。

答案 1 :(得分:2)

在我的情况下,我的表单嵌套在另一个表单中。 因此,一旦我将<form name="myForm">切换为<ng-form name="myForm" ...>,表单就已定义。

请参阅ng-form docs

答案 2 :(得分:1)

遇到同样的问题并通过在包含表单的html模板中声明控制器来修复。所以你的表格声明会变成:

<form name="myForm" ng-controller="SomeController">

新功能&#34;功能&#34; 1.3,可能是..