#javascript #backbone.js
#javascript #backbone.js
Вопрос:
Я пытаюсь проверить модель, вызываемую Book
на основе доступности атрибута, с помощью этого видео. Я пытаюсь следовать инструкциям о том, как проверить Backbone.js модель, но когда я иду проверять ее экземпляр, вызванный myBook
с помощью .isValid()
метода, он возвращает ошибку:
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()
метод, он возвращает указанную ошибку.
Комментарии:
1. Сообщение об ошибке понятно. MyBook — это не то, что вам нужно, а понять, зачем нам нужен код.
2. прочтите сообщение об ошибке, функция не определена.. где это объявляется. вставь какой-нибудь код, чувак
Ответ №1:
Было бы трудно помочь вам, если бы вы не предоставили пример кода, в котором есть ответ.
У Backbone 0.3.3 isValid
пока нет.
Он был добавлен в Backbone 0.9.1, но был удален в 0.9.9.
Он был улучшен и добавлен обратно в 1.0.
После обновления Backbone и связанного с комментарием about h.has is not a function
вам также необходимо выполнить обновление underscore.js как _.has
было добавлено в 1.3.1.
Вам действительно следует использовать последнюю стабильную версию библиотек для вашего проекта, поскольку вы избежите подобных несовместимостей.
Комментарии:
1. О, спасибо. Я никогда не смотрю спецификации для версии библиотеки. Мне придется использовать новую версию Backbone.
2. Хорошо, я запустил этот же код с Backbone 1.0, теперь я получаю странную ошибку от самой версии, в которой говорится,
h.has is not a function.
что происходит?3. @ObinnaNwakwue между 0.3.3 и 1.0 было много изменений. Поскольку вы проходите процесс обновления, я бы посоветовал вам сразу же использовать последнюю версию (1.3.3).
4. @ObinnaNwakwue Кроме того, на этот вопрос был дан ответ: если вы столкнулись с новой проблемой, сначала попробуйте ее решить, а затем, если все остальное не удается, задайте новый вопрос. Кстати, вам также необходимо обновить подчеркивание, так как
_.has
функция была добавлена в 1.3.15. Спасибо. Я прошу прощения за то, что не решил эту проблему самостоятельно. В следующий раз мне нужно посмотреть спецификации для версии библиотеки.