Why do I get the error: ".isValid()" is not a function?

Why do I get the error: ".isValid()" is not a function?

我正在尝试在 this video 的帮助下,根据属性的可用性验证名为 Book 的模型。我正在尝试按照有关如何验证 Backbone.js 模型的说明进行操作,但是当我使用 .isValid() 方法验证名为 myBook 的实例时,它 returns错误:

Uncaught TypeError: myBook.isValid() is not a function

这是我的代码:

<script src="https://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>
<script src="https://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.4/underscore-min.js"></script>
<script language="Javascript">
  var Book = Backbone.Model.extend({
    validate: function(attrs) {
      if (!attrs.title) {
        return "What's a book without a title?!";
      }
    }
  });

  var myBook = new Book();
  /* validation is run in browser */
</script>

这与上面链接的视频中的内容相似。当我进入控制台并 运行 .isValid() 方法时,它 returns 表示错误。

如果您没有提供包含答案的代码示例,将很难为您提供帮助。

Backbone 0.3.3 还没有 isValid

added in Backbone 0.9.1 but got removed in 0.9.9

已改进 added back in 1.0

升级Backbone后,与h.has is not a function的评论相关,您还需要升级underscore.js,因为_.has是在1.3.1中添加的。

您确实应该为您的项目使用最新的稳定版本的库,因为这样可以避免不兼容问题。