2012-01-10 3 views
0

나는 레시피 모델을 가지고 있으며 레시피에는 여러 가지 재료를 저장하는 성분 목록 컬렉션이 있습니다.ajax 이벤트에서 관계형 모델의 컬렉션에 모델 추가

양식 제출시 재료 목록에 재료를 추가하면 서버에서 'id'를 가져와야하므로 아약스 요청을 받고 ID를 얻은 다음 재료를 추가하려고합니다. 모델. 나는 아약스 벌금을 얻고 그것 때문에 문제가 트리거하지 않을 수 있도록 내 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

우선 나는 백본으로 초보자입니다 .js! 그래서 내 생각은 다음과 같습니다

  • 는 U는보기에 get_ingredient을 결합해야합니다 귀하의 기능을 실행하는 데 bind을 봐!
  • 은 컨텍스트 (이)가 "get_ingredients"

이 그냥 내 5 센트

+0

난 당신이'컨텍스트를 전달 대해 무슨 뜻인지 모르겠어요 (이)', 당신은 정교한 수 있습니다을 전달하는 시도 ? 어쩌면 몇 가지 샘플 코드? 뷰의 initialize 문에서 get_ingredient를 바인딩했지만,'console.log (this.recipe)'를 출력하려고하면 여전히 정의되지 않습니다. – pedalpete

+0

모델을보기로 어떻게 전달합니까? 모델이 실제로 전달되었는지 테스트해야합니다 (라우터를 사용하는 경우) !! – trouble

+0

예, 라우터를 통해보기로 전달 중입니다. 뷰의 initialize 문에서'console.log (this.model)'을 가지고 있는데 모델에 아무런 문제가 없으며 모델에는 관계형 구조가 있으므로 문제가되지 않습니다. – pedalpete

관련 문제