Angular形式不在表中工作

时间:2015-12-23 21:19:26

标签: html angularjs forms html-table angularjs-forms

我创建了一个放在表格下方div中的工作表单;

<div class="row">
  <form class="form-signin" ng-submit="controller.add.save()">
    <h2 class="form-signin-heading">Add an item:</h2>
    <label for="inputName" class="sr-only">Name</label>
    <input type="text" name="name" id="inputName" class="form-control" placeholder="Name" required autofocus ng-model="controller.add.name">
    <label for="inputDescription" class="sr-only">Description</label>
    <textarea name="description" id="inputDescription" class="form-control" placeholder="Description" ng-model="controller.add.description">
    </textarea>
    <button class="btn btn-lg btn-primary btn-block" type="submit">Add</button>
  </form>
</div>

然后我决定将表格移到上面的表格中;

<tr>
  <form ng-submit="controller.add.save()">
    <td>Add an item</td>
    <td><input type="text" name="name" id="newName" class="form-control" placeholder="Name" required ng-model="controller.add.name"></td>
    <td><textarea name="description" id="newDescription" class="form-control" placeholder="Description" ng-model="controller.add.description"></textarea></td>
    <td><button class="btn btn-xs btn-primary" type="submit">Add</button></td>
  </form>
</tr>

但现在表格不再适用了。 我做错了什么?

1 个答案:

答案 0 :(得分:11)

你正在做的方式,不会在页面上正确呈现html,因为它按照表标准无效的html。基本上在场景后面,html渲染器会在渲染页面上的html时从table标记中抛出此内容。因此,要在表格标记内部使用表单,您可以使用ng-form属性而不是form元素。

但是,通过使用ng-form指令,您无法ng-submit指令,您只能通过button提交表单。

<强> HTML

<tr ng-form="myForm">
    <td>Add an item</td>
    <td><input type="text" name="name" id="newName" class="form-control" placeholder="Name" required ng-model="controller.add.name"></td>
    <td><textarea name="description" id="newDescription" class="form-control" placeholder="Description" ng-model="controller.add.description"></textarea></td>
    <td><button class="btn btn-xs btn-primary" type="button" ng-click="controller.add.save()">Add</button></td>
</tr>

有关表格结构的更详细答案,可以参考this answer