Я пытаюсь настроить Router с помощью Backbone.js и получаю исключение в строке 1414 backbone.js 1.1.2.
Ошибка существует в Safari и Chrome:
[Error] TypeError: 'undefined' is not a function (evaluating 'Backbone.$(window).on('hashchange', this.checkUrl)')
start (backbone.js, line 1414)
(anonymous function) (index.html, line 27)
Вот файл index.html, строка 27 — это Backbone.History.start().
<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<head>
<link rel="stylesheet" href="bootstrap.min.css">
</head>
<body>
<div class="container">
</div>
<script src="../jquery.js"></script>
<script src="../underscore.js"></script>
<script src="../backbone.js"></script>
<script src="../json2.js"></script>
</body>
<!-- BACKBONE -->
<script type="text/javascript">
(function($) {
var PageRouter = Backbone.Router.extend({
routes: {
'': 'index'
}
});
var pageRouter = new PageRouter();
pageRouter.on('index', function() {
console.log('hey');
});
Backbone.history.start();
})(jQuery)
</script>
</html>
Я не могу найти много ресурсов, чтобы помочь, и большинство ранее существовавших ресурсов подчеркивают выделение маршрутизатора, и я чувствую, что это реализовано правильно. Кроме того, я не думаю, что необходимо иметь коллекцию или модель, поскольку в настоящее время я только пытаюсь реализовать маршрутизацию. Любая помощь будет оценена по достоинству, спасибо.
** РЕДАКТИРОВАТЬ **
Я изменил порядок импорта скрипта на:
<script src="../underscore.js"></script>
<script src="../backbone.js"></script>
<script src="../jquery.js"></script>
<script src="../json2.js"></script>
и ошибка изменилась на TypeError: 'undefined' is not a function (evaluating 'Backbone.$(window)')
добавление точки останова к строке 1414 backbone.js указывает на то, что ошибка связана с оценкой this.checkUrl
checkUrl: function () { [native code] } arguments: (...) get arguments: function ThrowTypeError() { [native code] } set arguments: function ThrowTypeError() { [native code] } caller: (...) get caller: function ThrowTypeError() { [native code] } set caller: function ThrowTypeError() { [native code] } length: 1 name: "" __proto__: function Empty() {} [[TargetFunction]]: function (e) { [[BoundThis]]: Backbone.History [[BoundArgs]]: Array[0]
способ, которым я настроил маршрутизатор, де-факто соответствует нескольким источникам, независимо от (function($){})(jQuery)
и не знаю, как правильно назначить путь. использование #
мне не помогло.
index: function() {}
вextend
, все вышеупомянутые результаты сUncaught TypeError: undefined is not a function
и не смогли найти решение из предыдущего сообщения stackoverflow.com/questions/7343357/ - person aug2uag   schedule 20.04.2014Backbone.$
? В вашем jQuery естьon
? - person mu is too short   schedule 20.04.2014