代码之家  ›  专栏  ›  技术社区  ›  Brent Payton

尝试使用EJS动态呈现编辑表单

  •  0
  • Brent Payton  · 技术社区  · 7 年前

    问题似乎出在EJS上。我可能想做一些EJS不是为之设计的事情。

    我正在开发一个web应用程序,它使用具有可变字段数的表单。如果我正在编辑的Mongo文档只有一个字段,我不想显示任何其他字段的输入框。

    我能够动态控制编辑文档时显示的字段数量,但无法动态显示字段的当前值。

    如果我像这样使用值标记: value=<%= document.field1 %> ,工作正常。然而,这必须手动为每个字段重复,包括不存在的字段。

    我想做的是这样: value=<%= 'document.field' + (i+1) %> . 理想情况下,这将生成与上述代码相同的呈现HTML。然而,我看到的是 'document.field1'

    1 回复  |  直到 7 年前
        1
  •  0
  •   skirtle    7 年前

    EJS只是JavaScript代码的薄型包装器。任何可以在JavaScript中编写的内容都可以在EJS中编写,它们将包含在编译后的模板中,无需修改。

    因此,要引用具有动态名称的字段,您将使用 [] 就像在任何其他JavaScript代码中一样。根据您提供的代码,应该是这样的:

    value="<%= document['field' + (i + 1)] %>"