2012-10-18 2 views
3

나는 문법 템플릿을 가지고 몽고 DB에서 문서를 렌더링하고있다. 문서의 일부가 편집 가능합니다 (HTML 입력 요소로 렌더링 됨). 이제 문서로 돌아가려면 데이터가 필요합니다 (문구로)글을 쓰는 사용자가 입력 한 글자 (문답)

가장 좋은 방법은 무엇입니까?

대답은 내가 doc.a의 가치를 다시 기록 할 경우 쉽게 :

doc = {a: "hello"}

그것은 덜 간단하다 doc.a [0]

doc = {a: [{z: "hello"}]}

를 .Z

업데이트를 수행하려면 경로를 업데이트 문을 작성하기 위해 으로 기억해야하기 때문입니다. 필드 변경 , 단순하지만 비효율적 보이는 때마다 어떤 프레임 워크 (EmberJs)을 할 때마다 위젯의 값 변경 모델을 수정 마법의 바인딩을 가지고

그것은 매우 일반적인 사용 사례입니다 ... 전체 문서를 업데이트.

유성에서 어떻게 이루어 집니까?

+1

가 만들기 쉬운이 [유성의 로드맵 (HTTPS에이 /trello.com/card/easy-forms/508721606e02bb9d570016ae/8) (링크에는 사용자가 기고 한 양식 패키지도 나와 있습니다). –

답변

2

입력 사항이 변경 될 때마다 db update 명령을 실행하는 것이 비효율적 일 수 있습니다. 이것은 슬라이더와 같은 드래그 가능한 요소에 특히 해당됩니다. 당신이 할 수있는

한 가지 때문에 (테스트되지 않은) 것처럼, underscore.js를 사용하여 진동을 소거 한 다음 기능으로 DB 쿼리 별도이며,/:

var debouncedUpdate = _.debounce(function(newObject) { 
    CollectionName.update({_id: newObject._id},newObject); 
},300,true); 

Template.objectInput.events({ 
    'keydown #text-input': function(event) { 
     var newValue = $(this.find('#text-input')).val(); 
     var self = this; 
     self.value = newValue; 
     debouncedUpdate(self); 
    }, 
}); 
관련 문제