2012-01-10 4 views
0

У меня есть модель рецепта, а в рецепте есть коллекция ингредиентов, в которой хранится куча ингредиентов.Добавление модели к коллекции реляционной модели в событии ajax

Когда я добавляю ингредиент в список ингредиентов из формы submit, я должен получить «идентификатор» с сервера, поэтому я делаю запрос ajax, получаю идентификатор и пытаюсь добавить компонент к модель.

В моей ingredientlist.view, я

 
    initialize: function(){ 
     this.recipe = this.model; 
     }, 

     get_ingredient: function(ingredient){ 
      var ingredient_id = new MyApp.Models.Ingredient; 
     ingredient.url='/ingredients/?ing='+encodeURIComponent(ingredient_array[i]); 

     ingredient.fetch({ 

      success: function() { 
       this.recipe('add:ingredients', function(ingredient,ingredientlist){ 

       }); 
      }, 
      error: function() { 
       new Error({ message: "adding ingredient" }); 
      } 
     }); 
     } 

я не включил функцию, которая запускает «get_ingredient», потому что это я получаю АЯКС штраф, так что проблема не в инициировании «get_ingredient».

Я получаю сообщение об ошибке Uncaught TypeError: Property 'recipe' of object [object DOMWindow] is not a function используя существующий код.

Каков наилучший способ добиться чего-то подобного?

ответ

1

Прежде всего, я тоже новичок с backbone.js! Так что мои мысли является:

  • U необходимо связать ваш get_ingredient на ваш взгляд: посмотрите bind, чтобы вызвать свои функции!
  • Попробуйте передать контекст (это), чтобы «get_ingredients»

Это просто мои 5 центов

+0

Я не уверен, что вы имеете в виду о передаче 'Context (это)', вы можете разрабатывающими ? может быть, пример кода? Я связал 'get_ingredient' в инструкции инициализации представления, но когда я пытаюсь вывести' console.log (this.recipe) ', я все равно получаю undefined. – pedalpete

+0

Как вы передаете свою модель в представление? вы должны проверить, действительно ли модель передана, например: в маршрутизаторе (если вы используете один)! – trouble

+0

Да, я передаю его на просмотр через маршрутизатор. В моем заявлении инициализации в представлении у меня есть 'console.log (this.model)', и это исключает модель без проблем, и модель имеет структуру реляционной, так что это тоже не проблема. – pedalpete

Смежные вопросы