2012-12-14 19 views
0

我正在构建一个基本上由几个选择,几个复选框和一个输入文本字段组成的Web应用程序。每个选择包含4个以上的选项。用户选择他们的选项后,填写文本输入,检查任何可能的复选框,然后按提交,在textarea中生成模板文本。生成的文本基本上是一个使用用户指定的所有选项的模板。在一个简单的形式,它可以去是这样的:从JavaScript中的用户输入生成复杂的文本模板

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

Hello, John, you have a blue car.

现在,上面的例子是约100倍比我生成的文本是实际想那么复杂。问题来了:编码的最佳方法是什么?目前,我选择了带有大量静态文本和大量IF语句的丑陋嵌套开关语句。尽管如此,如果我增加更多的复杂性,我会遇到扩展当前开关语句的限制,并且也希望避免创建另一个开关语句级别。

是最好的方式来生成文本的所有可能的变化(我猜测至少有一个200-250,并简单地通过一个单一的switch语句返回一个选定的模板(然而,这使得应用更改一个单词/句子/等一个噩梦)?或者我应该抽象所有的选择,并用变量创建最终的文本(例如使用上面的例子:$ greeting,$ name,$ middle $ color $ object。)?什么是用于生成文本的最佳做法?

这是不特定于JavaScript,但就是我使用什么如何做到这一点的JS所以建议将受到欢迎。感谢您的帮助!

回答

0

一种方式做这是对h使用JSON创建数据模型。您的用户界面更新数据模型中的值,然后在每次更改后输出整个事物。这样你可以跳过很多逻辑。

jQuery templating可以帮助使这项工作:

+0

感谢您的建议。我最终使用了JSON。 – mart1n