2012-12-14 20 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