Angular js 表单在不应该提交的时候提交

Angular js form submits when it shouldn't

我有一个 AngularJS 表格,如下所示:

<form ng-submit="vm.update(vm.model)"> 

     .. fields

     <button ng-click="vm.addCluster()">Add</button>

     .. more fields

     <input type="submit" value="Save" /> 

</form>

当我点击提交时,它按预期工作 - update() 方法被调用。当我单击该按钮时,它会调用 addCluster(),但在提交表单后会自动调用 update()

为什么会这样,我该如何预防?

表单中的按钮(没有指定type)的默认行为是提交,您可以将按钮的type设置为button来改变这个行为

<button type="button" ng-click="vm.addCluster()">Add</button>

我相信你可以像这样给按钮一个额外的属性

<button type="button">Your button</button>

type="button" 应该可以防止不需要的表单提交。