在CouchApp查询中调用多个视图

时间:2011-05-20 15:18:52

标签: views couchapp

我需要根据表单中输入的几个条件搜索CouchDB。名称,标签数组等。然后,我需要各种视图来索引这些字段。最终,所有结果将在data.js中整理并提供给mustache.html。假设有3个视图 - docsByName,docsByTags,docsById。

我不知道的是,如何在query.js中查询所有这些视图。可以这样做吗?

或者应该采用哪种方法来编写一个视图,以某种方式为每个搜索进行多次发射?

谢谢。

1 个答案:

答案 0 :(得分:1)

根据您的说法我假设您使用的是Evently,因此我将引用Evently primer

  

async函数是主星,在这种情况下发出Ajax请求(但它可以做任何想做的事)。另一个需要注意的重要事项是async函数的第一个参数是一个回调函数,用于在完成异步操作时告诉Evently。 [...]无论您传递给回调函数,都会成为传递给数据函数的第一个项目。

简而言之:将您的Ajax请求放在async.js

作为旁注:最后只是编写couchapp的可能选择之一,并且不清楚它是否得到维护。但是它很有效,很容易重新排列代码而不使用它。

编辑:这是一个示例异步函数(从旧程序剪切和粘贴):

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);
        }
      });
    }
  });
}