У меня проблемы с браузером.
Цель
Я пытаюсь создать базовое одностраничное приложение TodoMVC с Backbone, только вместо кучи тегов <script>
в моем index.html
, я пытаюсь связать их все с помощью браузера.
Вот что я до сих пор.
Lib/модели/todo.js
var backbone = require("backbone");
var Todo = module.exports = backbone.Model.extend({
defaults: function() {
return {
title: "",
completed: false,
createdAt: Date.now(),
};
},
});
Lib/коллекции/todo.js
var backbone = require("backbone"),
LocalStorage = require("backbone.localstorage");
var TodoCollection = module.exports = backbone.Collection.extend({
localStorage: new LocalStorage('todomvc'),
});
Библиотека /app.js
var Todo = require("./models/todo"),
TodoCollection = require("./collections/todo");
(function(global) {
global.todoCollection = new TodoCollection([], {model: Todo});
})(window);
Чтобы построить мой пакет, я использую
browserify lib/app.js > js/app.js
Наконец, мой index.html
довольно прост
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Todo MVC</title>
</head>
<body>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="/js/app.js"></script>
</body>
</html>
Проблема
Когда я открываю консоль и пытаюсь запустить эту команду
todoCollection.create({title: "My first todo"});
Я получаю сообщение об ошибке
"Невозможно прочитать свойство" Отложено "undefined"
StackTrace
TypeError: Cannot read property 'Deferred' of undefined
at Backbone.LocalStorage.sync.window.Store.sync.Backbone.localSync (http://localhost:4000/js/app.js:182:47)
at Backbone.sync (http://localhost:4000/js/app.js:255:40)
at _.extend.sync (http://localhost:4000/js/app.js:1773:28)
at _.extend.save (http://localhost:4000/js/app.js:1979:18)
at _.extend.create (http://localhost:4000/js/app.js:2370:13)
at <anonymous>:2:16
at Object.InjectedScript._evaluateOn (<anonymous>:580:39)
at Object.InjectedScript._evaluateAndWrap (<anonymous>:539:52)
at Object.InjectedScript.evaluate (<anonymous>:458:21)
Вопрос
Я немного поработал над тем, как прокручивать базовые приложения, но я мало что нашел в отношении вещей, которые соответствуют моей цели.
Как я могу связать одностраничное базовое приложение с одним app.js
, которое может потребоваться в html?
В качестве стороннего
Я не уверен, правильно ли включаю jQuery. Является ли Backbone проблем с подключением себя к jQuery, если он также не является частью моего браузера?
Приветствуются любые советы.