0

我正在构建一个 Web 应用程序,它基本上由几个选择、几个复选框和一个输入文本字段组成。每个选择包含超过 4 个选项。在用户选择他们的选项、填写文本输入、勾选所有可能的复选框并按下提交后,文本区域中会生成一个模板文本。生成的文本基本上是一个使用用户指定的所有选项的模板。在一个简单的形式中,它可以是这样的:

  1. 用户从选择中选择“蓝色”和“你好”,不选中任何复选框,并在输入文本字段中写入“约翰”。
  2. 然后生成的文本是:

Hello, John, you have a blue car.

现在,上面的例子比我生成的文本的实际复杂程度低了大约 100 倍。问题来了:最好的编码方式是什么?目前,我选择了带有大量静态文本和大量 IF 语句的丑陋嵌套 switch 语句。但它有一个限制,因为如果我增加更多复杂性,我将达到扩展当前 switch 语句的限制,并且还希望避免创建另一个级别的 switch 语句。

是生成所有可能的文本变体的最佳方式(我猜至少有 200-250 并且只需运行一个返回选定模板的 switch 语句(但是这会使更改应用于一个单词/句子/etc. 一场噩梦)?或者我应该抽象所有的选择并只使用变量构建最终文本(例如使用上面的示例:$greeting、$name、$middle $color $object。)?生成的最佳实践是什么?文本?

这不是 JavaScript 特有的,而是我正在使用的,因此欢迎提出如何在 JS 中执行此操作的建议。谢谢你的帮助!

4

1 回答 1

0

一种方法是使用 JSON 建立数据模型。您的 UI 会更新数据模型中的值,然后在每次更改后输出整个内容。这样你就可以跳过很多逻辑。

jQuery 模板可以帮助完成这项工作:

于 2012-12-14T19:13:01.740 回答