在jade/pug脚本代码中调用模式方法

Call schema method in jade/pug script code

本文关键字:调用 模式 方法 代码 脚本 jade pug      更新时间:2023-09-26

我有一个mongoose的集合

我已经给模式添加了一个方法。

问题是,我使用我所有的文档在javascript代码与jade使用这个代码片段

script.
  var nodes = !{JSON.stringify(nodes)};

,但现在nodes填充了一个对象数组,我不再能够调用我的模式方法,即它是不可能做到这一点

script.
  var nodes = !{JSON.stringify(nodes)};
  nodes = nodes.map(function (node) {
    return node.generateFullName()
  });

,因为每个对象只存储值,而不存储模式方法。上面的代码片段将导致错误node.generateFullName is not a function

我该怎么做才能在javascript中调用generateFullName()函数?它在普通模板中运行良好

each node in nodes
  p= node.generateFullName()

由于JSON.stringify -ed数据是与模式及其方法分离的数组,因此您需要在模板中添加代码以在客户端复制generateFullName方法,或者更简单地说,您可以将映射函数移动到插入的JSON.stringify调用中,如下所示:

 !{JSON.stringify(nodes.map(function(node) { return node.generateFullName(); })};