目标
构建一个允许用户搜索位置的应用程序。
当前状态
目前列出的位置很少,所以它们只是在登陆“经销商”页面时全部呈现。
背景
以前,我们销售的产品只有大约 50 个陈列室,所以静态 HTML 页面就可以了。
并显示为
但是在这样做之后页面大小增加到大约 1500 行代码。我们得到了更多,需要一个可扩展的解决方案,以便我们可以快速添加更多经销商。在其他项目中,我以前使用过 MustacheJS 并从 JSON 文件中加载值。我知道理想情况下这将是一个 AJAX 应用程序。也许我在这里使用数据库可能会更好?
以下是我到目前为止的想法,它在一定程度上“有效”,但似乎离可以有效扩展的最可持续的解决方案还差得远。
HTML
<a id="{{state}}"></a>
<div>
<h4>{{dealer}} : {{city}}, {{state}} {{l_type}}</h4>
<div class="{{icon_class}}">
<ul>
<li><i class="icon-map-marker"></i></li>
<li><i class="icon-phone"></i></li>
<li><i class="icon-print"></i></li>
</ul>
</div>
<div class="listingInfo">
<p>{{street}} <br>{{suite}}<br>
{{city}}, {{state}} {{zip}}<br>
Phone: {{phone}}<br>
{{toll_free}}<br>
{{fax}}
</p>
</div>
</div>
<hr>
JSON
{ "dealers" : [
{
"dealer":"Benco Dental",
"City":"Denver",
"state":"CO",
"zip":"80112",
"l_type":"Showroom",
"icon_class":"listingIcons_3la",
"phone":"(303) 790-1421",
"toll_free":null,
"fax":"(303) 790-1421"
},
{
"dealer":"Burkhardt Dental Supply",
"City":"Portland",
"state":"OR",
"zip":"97220",
"l_type":"Showroom",
"icon_class":"listingIcons",
"phone":" (503) 252-9777",
"toll_free":"(800) 367-3030",
"fax":"(866) 408-3488"
}
]}
挑战
包装的 CSS 类
ul
将根据字段的数量而有所不同。在这种情况下有 3 个,所以类是“listingIcons_3la”“免费”号码部分仅在事实上有免费号码时才应显示。
传真号码只有在有传真号码值时才会显示。