angularjs:绑定到其他元素的bug触发方法

angularjs:绑定到其他元素的bug触发方法,angularjs,Angularjs,我不确定这是一个错误还是我做错了什么。问题是,当我在一个文本输入上按enter键时,一个方法正在触发,该方法触发并没有绑定到输入文本,而是绑定到其他按钮。请参见此处的JSFIDLE: 按文本框上的enter键,您将看到警报,whey deleteIt方法正在触发 html代码: <div ng-app=""> <div ng-controller="MyCtrl"> <form> <input type="text" /&

我不确定这是一个错误还是我做错了什么。问题是,当我在一个文本输入上按enter键时,一个方法正在触发,该方法触发并没有绑定到输入文本,而是绑定到其他按钮。请参见此处的JSFIDLE:

按文本框上的enter键,您将看到警报,whey deleteIt方法正在触发

html代码:

<div ng-app="">
  <div ng-controller="MyCtrl">
      <form>
        <input type="text" />
        <button ng-click="deleteIt()">Delete</button>
    </form>
  </div>
</div>

通过显式设置
type=“button”
可以轻松解决此问题:

<button type="button" ng-click="deleteIt()">Delete</button>

经过这些修改后,
首先触发
,然后是
提交
()。

不管表单是否有一个或多个字段,它都会触发deleteIt方法
<button type="button" ng-click="deleteIt()">Delete</button>
<form ng-submit="submitIt()">
  <input name="abc" type="text" />
  <input name="def" type="text" />          
  <button ng-click="deleteIt()">Delete</button>
</form>

// in controller:
$scope.submitIt = function() {
    alert('Submit');        
};
$scope.deleteIt = function() {
    alert('Firing');
};