2014-10-23 3 views
0

belongsTo 관계가있는 레코드의 입력 양식을 사용하여 앱을 제작하고 있습니다. Ember Data와 pouchdb (https://github.com/nolanlawson/ember-pouch)를 사용하고 있습니다."created.inFlight"에서 Ember Data & pouchdb 어댑터로 "saved.inFlight"에서 "saved"로 레코드를 변환하는 방법

바나나를 바구니에 넣고 싶다고합시다.

// new banana controller 

banana.set('basket', basketRecord); 

banana.save(); 

그 후 나는 생성 된 레코드를 표시하고자하는 banana 경로로 전환합니다.

// banana.hbs 

<p>{{basket.title}}</p> 

에만 위의 제목은 내가 페이지를 다시로드 한 후, 또한 기록은 바나나 컨트롤러에서 save()를 호출 한 후 created.inFlight으로 식별, 그래서 수동으로 기록을 다시로드 할 수 없습니다 나타납니다.

저의 이해대로, 저장된 모델이 서버 (또는이 경우에는 내 PouchDB)에 동기화 된 후 saved 상태로 레코드가 전환됩니다.

레코드가 inFlight이 아니게되도록 내 모델을 강제로 업데이트 할 수 있습니까?

강제로이 설정을 적용하는 것이 좋습니다. 아니면 일부 상태 전이 이벤트가 발생하기를 기다려야하고 이후에 진행해야합니까?

미리 감사드립니다. Ember, Ember CLI 및 PouchDB의 제작자와 커뮤니티에 큰 감사의 말씀을 전합니다.

답변

0

그래서이는 더 복잡한 질문의 일부입니다

변화가 원격 데이터베이스에 로컬 데이터베이스에서 동기화 된 내가 내 로컬 응용 프로그램에서 감지 할 수있는 방법

?

이것은 실제로 결정하기가 대단히 어렵지는 않지만 어디에서 물어야 하는지를 알아야합니다. change 객체는 다음 원래 데이터베이스에 다시 매핑 할 수있는 id 포함됩니다

new PouchDB('http://somewhere:5984/somedb') 
    .changes({live: true}).on('change', function (change) { 
    console.log('yo, got a change'); 
}); 

그건 : 기본적으로

, 당신은 뭔가 같은 원격 CouchDB를 변경 사항에 대해 듣고 싶은거야 . 불행하게도 이것은 relational-pouch 추상화가 조금 누설되기 시작한 곳입니다. relational-pouchchanges() 래퍼를 작성한 적이 없으므로 직접 작성해야합니다. Here's an example.

그런 다음 Ember를 업데이트해야하며이 스레드에는 수행 방법에 대한 정보가 포함되어 있습니다. 미안하지만 더 쉽지는 않지만 도움이되기를 바랍니다!

+0

안녕 놀런, 답변 해 주셔서 감사합니다. 다행히 Ember Pouch의 새로운 버전으로의 업데이트가 저를 위해이 문제를 해결했습니다. 왜냐하면 독자적으로 할 수있는 방법이 없기 때문입니다. 환호 –

+0

그래, 나보다 똑똑한 사람이 풀 요청을 보냈습니다. 이제는 모두 자동으로 완료됩니다. :) – nlawson