“Uncaught TypeError: undefined n'est pas une fonction” - Débutant Backbone.js Application

Je suis la mise en place est assez simple application avec la colonne vertébrale, et j'obtiens une erreur.

Uncaught TypeError: undefined is not a function example_app.js:7
ExampleApp.initialize example_app.js:7
(anonymous function)

C'est l'endroit où l'erreur s'affiche dans l'Inspecteur de Chrome (fichier init - example_app.js):

var ExampleApp = {
  Models: {},
  Collections: {},
  Views: {},
  Routers: {},
  initialize: function() {
    var tasks = new ExampleApp.Collections.Tasks(data.tasks);
    new ExampleApp.Routers.Tasks({ tasks: tasks });
    Backbone.history.start();
  }
};

Voici mes tâches de l'index.haml fichier

- content_for :javascript do
  - javascript_tag do
    ExampleApp.initialize({ tasks: #{raw @tasks.to_json} });

= yield :javascript

modèles /task.js

var Task = Backbone.Model.extend({});

collections /tasks.js

var Tasks = Backbone.Collection.extend({
    model: Task,
    url: '/tasks'
});

routeurs /tasks.js

ExampleApp.Routers.Tasks = Backbone.Router.extend({
    routes: {
        "": "index"
    },

    index: function() {
        alert('test');
        //var view = new ExampleApp.Views.TaskIndex({ collection: ExampleApp.tasks });
        //$('body').html(view.render().$el);
    }
});

Et voici la preuve que je vais appeler tous les fichiers (je pense):

<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/underscore.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone-support/support.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone-support/composite_view.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone-support/swapping_router.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone-support.js?body=1" type="text/javascript"></script>
<script src="/assets/example_app.js?body=1" type="text/javascript"></script>
<script src="/assets/easing.js?body=1" type="text/javascript"></script>
<script src="/assets/modernizr.js?body=1" type="text/javascript"></script>
<script src="/assets/models/task.js?body=1" type="text/javascript"></script>
<script src="/assets/collections/tasks.js?body=1" type="text/javascript"></script>
<script src="/assets/views/task_view.js?body=1" type="text/javascript"></script>
<script src="/assets/views/tasks.js?body=1" type="text/javascript"></script>
<script src="/assets/views/tasks_index.js?body=1" type="text/javascript"></script>
<script src="/assets/routers/tasks.js?body=1" type="text/javascript"></script>
<script src="/assets/tasks/index.js?body=1" type="text/javascript"></script>
<script src="/assets/tasks/task.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>

Des idées serait génial. Merci!

  • Ce qui est sur la ligne 12 de pears_planner.js? Vous ne comprennent pas que le code, mais le message d'erreur dit que c'est l'endroit où vous problème. en fait, j'irais jusqu'à dire que c'est probablement le seul code pertinent pour cette question.
  • Désolé, que devrait dire la ligne 7 (j'ai eu quelques commentaires dans une version). Alors que ce serait le initializer: var tasks = new ExampleApp.Collections.Tasks(data.tasks);
  • Attendre, alors que l'erreur est erroné? Parce que le code que vous venez de mettre dans ce commentaire a aucune mention de PearsPlanner.initialize c'est là votre erreur semble venir de la... nous aider à vous Aider, l'homme... Poster le message d'erreur et le code, le message d'erreur fait référence.
  • Je suis désolé, oui, l'erreur a été de mal. J'ai préféré ne pas avoir le nom de mon application dans un tas d'endroits publiquement, mais j'ai manqué un. Voir mes modifications...
InformationsquelleAutor jake | 2012-11-21