у объекта нет метода по довольно простому запросу - PullRequest
0 голосов
/ 25 января 2012

У меня есть базовая модель, которая содержит массив, который я обновляю с простым идентификатором (я не хотел добавлять вложенную коллекцию).

Это кажется мне довольно простым, но по какой-то причинеполучаю ошибку Uncaught TypeError: Object [object Object] has no method 'preshow'.

У меня есть список классов и форма с вводимым классом.Пользователь может щелкнуть элемент в списке классов, чтобы добавить его в качестве предварительного условия для редактируемого класса.Это вызывает «add_prerequisite» в представлении «ClassInput».

Я пропустил код, который, мне кажется, не нужен.

Myapp.ClassInput = Backbone.Views.extend({
        initialize: function(){
         Myapp.class = this.model;
         Myapp.class.bind("add_prerequisite", this.add_prerequisite);
        },
        add_prerequisite: function(prerequisite){
         // this is a method in my model which adds the prerequisite id to this class
          class.add_prerequisite(prerequisite)

         //this is the line triggering the error
          this.show_pre(prerequisite);
         },

       show_pre: function(prerequisite){
          alert(prerequisite);
         }

});

Myapp.Classes.ClassList = Backbone.Views.extend({


     add_prerequisite: function(){
        Myapp.class.trigger('add_prerequisite',this.model.id);
     }
});

1 Ответ

1 голос
/ 25 января 2012

Вам необходимо привязать контекст add_prerequisite к вашей базовой модели.

Для этого вам просто нужно добавить третий аргумент в метод связывания

initialize: function() {
  Myapp.class = this.model;
  //bind the context of this.add_prerequisite to this
  Myapp.class.bind('add_prerequisite', this.add_prerequisite, this); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...