Javascript AngularJS函数以

Javascript AngularJS函数以,javascript,angularjs,Javascript,Angularjs,在我的表单中,我有一些输入,这是我的自定义指令和一些文本字段。此外,我还有一些按钮:第一个按钮用于“向窗体添加新输入”,它绑定到我的控制器中的函数$scope.AddNewItem(),第二个按钮用于“从窗体中删除输入”,它绑定到函数$scope.removietem(项的索引)。当我在文本字段中键入并按enter键时出现问题-输入值被删除,因为$scope.removietem(项目的索引)本身被调用。我肯定我不会调用它,因为即使是调用堆栈也不能显示我可以在哪里调用它。 有人有同样的问题吗 &

在我的表单中,我有一些输入,这是我的自定义指令和一些文本字段。此外,我还有一些按钮:第一个按钮用于“向窗体添加新输入”,它绑定到我的控制器中的函数
$scope.AddNewItem()
,第二个按钮用于“从窗体中删除输入”,它绑定到函数
$scope.removietem(项的索引)
。当我在文本字段中键入并按enter键时出现问题-输入值被删除,因为
$scope.removietem(项目的索引)
本身被调用。我肯定我不会调用它,因为即使是调用堆栈也不能显示我可以在哪里调用它。 有人有同样的问题吗

<div class="form-group " ng-repeat="(i, user) in users">
    <div class="col-sm-5" style="padding-right: 0px; margin-top: 0px">
        <div typeahead ng-model="users[i]"> </div>
    </div>
    <div class="col-sm-2 ng-scope" style="padding-left: 5px; margin-top: 0px">
        <button ng-click="removeUserInput(i)" class="btn pull-right m-t-n-xs remove-input">
            <i>
                    <span class="glyphicon glyphicon-minus" style="color: white;"></span>
                </i>
        </button>
        <button ng-click="addUserInput()" class="btn pull-right m-t-n-xs add-input">
            <i>
                    <span class="glyphicon glyphicon-plus" style="color: white;"></span>
                </i>
        </button>
    </div>
</div>

只要用下面的代码更新你的代码。。。 问题是您的按钮缺少type=“button”

   <div class="form-group " ng-repeat="(i, user) in users">
       <div class="col-sm-5" style="padding-right: 0px; margin-top: 0px">
           <div typeahead ng-model="users[i]">
           </div>

           <div class="col-sm-2 ng-scope" style="padding-left: 5px; margin-top: 0px">
           <button type="button" ng-click="removeUserInput(i)" class="btn pull-right m-t-n-xs remove-input">
              <i>
              <span class="glyphicon glyphicon-minus" style="color: white;"></span>
              </i>
            </button>

           <button type="button" ng-click="addUserInput()" class="btn pull-right m-t-n-xs add-input">
              <i>
              <span class="glyphicon glyphicon-plus" style="color: white;"></span>
              </i>
           </button>
         </div>
       </div> 
    </div>

只需使用以下代码更新您的代码即可。。。 问题是您的按钮缺少type=“button”

   <div class="form-group " ng-repeat="(i, user) in users">
       <div class="col-sm-5" style="padding-right: 0px; margin-top: 0px">
           <div typeahead ng-model="users[i]">
           </div>

           <div class="col-sm-2 ng-scope" style="padding-left: 5px; margin-top: 0px">
           <button type="button" ng-click="removeUserInput(i)" class="btn pull-right m-t-n-xs remove-input">
              <i>
              <span class="glyphicon glyphicon-minus" style="color: white;"></span>
              </i>
            </button>

           <button type="button" ng-click="addUserInput()" class="btn pull-right m-t-n-xs add-input">
              <i>
              <span class="glyphicon glyphicon-plus" style="color: white;"></span>
              </i>
           </button>
         </div>
       </div> 
    </div>

以防你好奇为什么会发生这样的事情

  • 每当您在
    form
    内按
    enter
    时,表单提交操作将与提交按钮onclick事件一起触发

  • 没有
    type
    属性的按钮的行为类似于
    submit
    按钮

在代码中,您没有为按钮指定
类型
属性,因此无论何时按下enter键

  • 它将尝试执行submit按钮的onclick事件
  • 然后它将尝试执行表单提交事件
在您的情况下,由于您没有为按钮指定类型属性,buttons onclick事件正在执行,这就是您的
$scope.removietem(项的索引)
函数正在执行自身的原因,即使您没有单击按钮

演示
类型
属性

执行按钮onclick事件和表单提交事件

点击

以防你好奇为什么会发生这样的事情

  • 每当您在
    form
    内按
    enter
    时,表单提交操作将与提交按钮onclick事件一起触发

  • 没有
    type
    属性的按钮的行为类似于
    submit
    按钮

在代码中,您没有为按钮指定
类型
属性,因此无论何时按下enter键

  • 它将尝试执行submit按钮的onclick事件
  • 然后它将尝试执行表单提交事件
在您的情况下,由于您没有为按钮指定类型属性,buttons onclick事件正在执行,这就是您的
$scope.removietem(项的索引)
函数正在执行自身的原因,即使您没有单击按钮

演示
类型
属性

执行按钮onclick事件和表单提交事件

点击

请提供代码片段,以便我们能更好地帮助您..您能发布您的代码吗,或粘贴bin/jsfiddle链接吗请提供代码片段,以便我们能更好地帮助您..您能发布您的代码吗,或粘贴bin/jsfiddle链接吗谢谢解释:)