-1

我是 Angular 的新手,我正在尝试使用书籍列表(具有属性 a、b、c、d)以及您可以添加新书的位置创建网站。我第一次提交everythik 时很好,第二次我收到这个错误v2.newBook 不是一个函数。有谁知道为什么它第一次和第二次不工作?谢谢

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

4 回答 4

2

这是因为您为调用的函数和图书模型本身使用了相同的名称。启动后,只有$scope.newBook function存在,但后来你用你的书模型覆盖它。只需简单地重命名函数或模型。

于 2016-05-15T18:02:52.800 回答
1

在您的代码函数中将函数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: ''
    }
  }
于 2016-05-15T18:04:03.257 回答
0

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>

于 2016-05-15T18:03:55.490 回答
0

您在代码中犯了一个小错误,实际上您已经重置了 d 对象两次并离开了重置 a。函数resetForm() { $scope.newBook = { d: '', b: '', c: '', d: '' } }

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

谢谢

于 2016-05-15T18:15:30.387 回答