Angular 仅提交第一次 v2 错误

Angular submit proceed just 1st time v2 error

我是 Angular 中的新人,我正在尝试创建包含书籍列表(具有属性 a、b、c、d)以及您可以添加新书的位置的网站。第一次我提交 everythik 时一切正常,第二次我收到此错误 v2.newBook is not a function。有谁知道为什么它第一次工作而第二次不工作?感谢

`https://plnkr.co/edit/OtfLPuQFptfgUxuo0pXJ`

这是因为您对要调用的函数和图书模型本身使用了相同的名称。启动后只有 $scope.newBook function 存在,但稍后您会用您的书籍模型覆盖它。只需重命名函数或模型即可。

https://plnkr.co/edit/3wwbDfTjcVQKx0VmsDFn?p=preview


这是一个有效的 plnkr。您的函数和对象都为 newBook,这是导致问题的原因。


$scope.newBook1 = function(book) {
    book.id = $scope.books.length;
    $scope.books.push(book);
    resetForm();
  }

HTML :

    <form class="form-group" ng-show="newBookForm" ng-submit="newBook1(newBook)" novalidate>

在您的代码函数中 resetForm()$scope.newBook 函数转换为对象

 $scope.newBook = function(book) {
    book.id = $scope.books.length;
    $scope.books.push(book);
    resetForm();
  }

  function resetForm() {
    $scope.newBook = { //here you defined newBook again as object
      d: '',
      b: '',
      c: '',
      d: ''
    }
  }

你在代码中犯了一个小错误,实际上你重置了 d 对象两次并留下了重置 a。 功能重置表格(){ $scope.newBook = { d: '', b: '', C: '', d: '' } }

只需将 d:'' 更改为 a:'' 即可 运行。

谢谢