mustache使用

Posted wmqiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mustache使用相关的知识,希望对你有一定的参考价值。

mustache模板,用于构造html页面的内容,

前端html代码:

<select name="itemtype" id="itemtype" class="optionlist"></select>
<select name="business" id="business" class="optionlist"></select>
 

 

前端javascript代码:

<!-- 下拉框模板 -->
    <script type="text/x-template" id="selecttmpl">
        {{#option}}
            <option value="{{value}}">{{text}}</option>
        {{/option}}
    </script>

 

$(function() {
  // 模板引擎
  var M = Mustache;

  // 获取html页面中的模板x-template的值,根据id定位
  selectmoudle = $("#selecttmpl").html();

  // 获取需要赋值的模板
  M.parse(selectmoudle);
  // 通过ajax调用后台接口获取数据  
  iniselectmoudle();
 
}

var iniselectmoudle = function() {
    
"iniselectmoudle" : "1" }; Util.ajax({ url : _settings.iniselectmoudle, data : requestData, type : ‘POST‘, success : function(response) { // 项目类型下拉
          // 根据select标签的id属性值定位然后赋值
        $(‘#itemtype‘).html(M.render(selectmoudle, { option : response.itemtypeList })); // 申报主题下
          // 根据后台接口返回的值JSONObject的String字符串类型,根据对应的key获取对应的value值,有些value值是JSONObject组成的list;
$(‘#business‘).html(M.render(selectmoudle, { option : response.constructionpropertyList }));
          // 可以同时给多个标签赋值

          // select控件初始化,模糊搜索 /* * $(".optionlist").chosen({ disable_search : true }); */ } }); }

 

后台action层业务管理层和service层业务逻辑实施层以及dao层数据访问层的restful接口的代码:

@RestController
@RequestMapping("/zwdtItem")
public class AuditOnlineItemController{
    /**
     *  咨询页面初始化下拉列表
     *  @param params 请求参数
     *  @param request HTTP请求
     * @return
     */
    @RequestMapping(value = "/iniselectmoudle", method = RequestMethod.POST)
    public String iniselectmoudle(@RequestBody String params, @Context HttpServletRequest request) {
        try {
            log.info("=======开始调用iniselectmoudle接口=======");
            JSONObject jsonObject = JSONObject.parseObject(params);
            String token = jsonObject.getString("token");
            if (ZwdtConstant.SysValidateData.equals(token)) {
                JSONObject obj = (JSONObject) jsonObject.get("params");
                
                // 可以根据前端ajax交互传回的参数执行判断执行不同的操作
                String iniselectmoudle = obj.getString("iniselectmoudle");

                // 获取相关数据以JSONObject组成的list形式返回前端,用于给模板select标签赋值
                List<CodeItems> itemtypeListTemp = iCodeItemsService.listCodeItemsByCodeName("并联审批项目类型");
                List<JSONObject> itemtypeList = new ArrayList<JSONObject>();
                for (CodeItems c : itemtypeListTemp) {
                    JSONObject objCode = new JSONObject();
                    objCode.put("value", c.getItemValue());
                    objCode.put("pId", "0");
                    objCode.put("text", c.getItemText());
                    itemtypeList.add(objCode);
                }

                // 调用方法返回由实体类或者JSONObject/Object类组成的ArrayList
                List<AuditSpBusiness> businessListTemp = auditOnlineConsultService.findAuditSpBusinessList();
                List<JSONObject> businessList = new ArrayList<JSONObject>();
                for (AuditSpBusiness auditSpBusiness : businessListTemp) {
                    JSONObject objCode = new JSONObject();
                    objCode.put("value", auditSpBusiness.getRowguid());
                    objCode.put("pId", "0");
                    objCode.put("text", auditSpBusiness.getBusinessname());
                    businessList.add(objCode);
                }

                JSONObject dataJson = new JSONObject();
                dataJson.put("itemtypeList", itemtypeList);
                dataJson.put("businessList", businessList);
                return JsonUtils.zwdtRestReturn("1", "初始化下拉列表成功", dataJson.toString());
            }
            else {
                log.info("=======结束调用iniselectmoudle接口=======");
                return JsonUtils.zwdtRestReturn("0", "身份验证失败!", "");
            }
        }
        catch (Exception e) {
            return JsonUtils.zwdtRestReturn("0", "初始化下拉列表失败:" + e.getMessage(), "");
        }
    }      
  
  
}

ArrayList是Array的复杂版本,是一种动态数组;

以上是关于mustache使用的主要内容,如果未能解决你的问题,请参考以下文章

mustache使用

Js模板引擎mustache

如何使用带有 Vuejs 的“Mustache”语法的烧瓶模板? [复制]

mustache.js

Mustache要点总结

Yii 2 —— 基于Mustache的页面多语言解决方案