我怎么能把变量放在pouchDb设计文件中

时间:2016-08-24 13:06:31

标签: javascript angularjs pouchdb

我正在pouchDB中创建一个设计文档,如下所示

var desingDoc = {
    _id: '_design/' + param,
    views: {
      by_name: {
        map: function (doc) {
          if (doc._id.indexOf(param + '_') == 0)
            emit(doc._id);
        }.toString()
      }
    }
  };

我有错误

pouchdb.min.js:7 ReferenceError: param is not defined
  1. 为什么不评估参数?
  2. 我如何评估它?
  3. 这是完整的功能

     function index(param) {
      var desingDoc = {
        _id: '_design/' + param,
        views: {
          by_name: {
            map: function (doc) {
              if (doc._id.indexOf(param + '_') == 0)
                emit(doc._id);
            }.toString()
          }
        }
      };
    
      _db.put(desingDoc).then(function () {
        console.log('success')
      }).catch(function (err) {
        console.log(err)
        // todo handle the non saved case
      });
    }
    

    _id被评估为罚款,只是map函数导致了错误

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但是我遇到了同样的问题,并像这样解决了它:

map: "function (doc) { if (doc._id.indexOf(" + param + "_) == 0) { emit(doc._id); } }"

代替使用.toString(),只需将函数用引号引起来即可。