1

フォームに入力されたいくつかの条件に基づいて CouchDB を検索する必要があります。名前、タグの配列など。次に、これらのフィールドにインデックスを付けるためにさまざまなビューが必要になります。最終的に、すべての結果が data.js で照合され、mustache.html に提供されます。docsByName、docsByTags、docsById の 3 つのビューがあるとします。

私が知らないのは、query.js でこれらすべてのビューを照会する方法です。これはどのように行うことができますか?

それとも、何らかの方法で検索ごとに複数の発行を行う1つのビューを作成するアプローチである必要がありますか?

ありがとうございました。

4

1 に答える 1

1

あなたの言うことから、あなたはEventlyを使用していると思いますので、 Evently 入門書から引用します:

async 関数が主役で、この場合は Ajax リクエストを作成します (ただし、必要なことは何でも実行できます)。注意すべきもう 1 つの重要な点は、async 関数の最初の引数がコールバックであり、非同期アクションが完了したときに Evently に通知するために使用することです。[...] コールバック関数に渡すものは何でも、データ関数に渡される最初の項目になります。

要するに、Ajax リクエストを に入れますasync.js

補足として: Evently は、couchapp を作成するための可能な選択肢の 1 つにすぎず、それが維持されるかどうかは明確ではありません。ただし、機能し、コードを再配置して使用しないようにするのは簡単です。

編集:これは非同期関数のサンプルです (古いプログラムからのカット & ペースト):

function(cb, e) {
  var app = $$(this).app
    ;
  app.db.openDoc('SOMEDOCID', {
    error: function(code, error, reason) {
      alert("Error("+code+" "+error+"): "+reason);
    }
  , success: function(doc) {
      app.view('SOMEVIEWNAME', {
        include_docs: true
      , error: function(code, error, reason) {
          alert("Error("+code+" "+error+"): "+reason);
        }
      , success: function(resp) {
          resp.doc = doc;
          cb(resp);
        }
      });
    }
  });
}
于 2011-05-21T16:22:51.380 に答える