AngularJs - 如何在控制器中获取当前表单?

时间:2014-07-23 15:14:13

标签: forms angularjs data-binding

我一直关注这个AngularJS - Server side validation and client side forms SO问题,但我似乎无法让它发挥作用。

给出以下代码:

<div ng-controller='LoginCtrl'>
    <form id="myForm" onsubmit="return false;" novalidate>
        <input type="text" ng-model="model.userName" />
        <button ng-click="login()">Login</button>
    </form>
</div>

app.controller('LoginCtrl', ['$scope', function ($scope) {
    $scope.model = { userName: '' };

    $scope.login = function () {
        console.log($scope.myForm);  // <-- this is undefined
    };
}]);

console.log显示未定义。我认为通过将表单包含为控制器div的子项,angular会自动将表单作为变量包含在我的范围内。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

将表单标记更改为

<form name="myForm" onsubmit="return false;" novalidate>

更多点

  1. 尝试在使用角色时不使用id,这将帮助你摆脱jquery

  2. 使用ng-form而不是表单标签,然后您可以拥有子表单,每个表单都有自己的验证状态...