Angularjs 1.3中未定义形式的范围

Angularjs 1.3中未定义形式的范围,angularjs,Angularjs,我不知道这是否是我做的,但一旦我升级到Angular 1.3,表单就不再在我的范围内定义。我的HTML是 <div some-dir> <form name="myForm"> <!-- Form stuff here --> <button ng-click="submit();"> </form> </div> 这个返回未定义的。我在任何地方都没有ng if或ng repeat。此特

我不知道这是否是我做的,但一旦我升级到Angular 1.3,表单就不再在我的范围内定义。我的HTML是

<div some-dir>

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

</div>

这个返回未定义的。我在任何地方都没有
ng if
ng repeat
。此特定指令中只有一个指令和一个范围。同样,在我升级到Angular 1.3之前,这一切都正常工作。我遇到了同样的问题,并通过在包含表单的html模板中声明控制器来修复。因此,您的表单声明将变成:

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


1.3的新“功能”,可能是..

通过将表单数据范围化到某个范围对象中,可以解决该问题:

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

这里有更多信息。

在我的例子中,我的表单恰好嵌套在另一个表单中。 因此,一旦我将
切换到
,表单就被定义了


请参阅。

好提示!通过从1.2升级到1.4,我在控制器中丢失了表单。因为我在版本0.8.0中使用AngularUI(仍然坚持使用Bootstrap 2.3.2),所以我在web上找到的其他解决方案都不令人满意。这似乎是唯一有效的解决方案。为了让AngularJS中如此基本和基本的东西按照你的合理预期工作,不得不求助于这样的黑客手段,真是太遗憾了。我喜欢AngularJS,除非我不得不做这样的事情/对我来说,除了这个,没有别的办法。我试过看,家长范围,等等。同样!谢谢你的回答!
  <form name="myForms.firstForm">
    <!-- Form stuff here -->
    <button ng-click="submit();">
  </form>
scope.myForms = {};
scope.submit = function() {
    console.log(scope.myForms.firstForm);
}