TmodJS是一套完整的前端模块框架。
虽然我们PHP框架自带各种模板引擎,但是始终是后端模板引擎。例如我们在使用ThinkPHP3.2.3中如果是Ajax异步加载页面,拼接HTML真的是很头疼的一件事情。
第一次使用TmodJS是在人人商城开发中使用,用起来非常方便,于是记录下来。
先看看后端的代码:
<?php //人人商城自带的生成json函数 function show_json($_var_31 = 1, $_var_32 = null) { $_var_33 = array("status" => $_var_31); if ($_var_32) { $_var_33["result"] = $_var_32; } die(json_encode($_var_33)); } //假设shop是商品列表 $shop=array(); $shop['goods']=array(array('title'=>'苹果'),array('title'=>'香蕉'),array('title'=>'荔枝'),array('title'=>'大枣')); show_json(1,$shop); ?>
再看看基本的前端页面:
<html> <head> <title></title> <meta charset="UTF-8"/> <script language="javascript" src="/js/require.js"></script> <script language="javascript" src="/js/config.js"></script> </head> <body> <div id="shop"> 商城商品 <script id='shop_goods' type='text/html'> <ul> <%each goods as g %> <li><%g.title%></li> <%/each%> </ul> </script> </div> <script type="text/javascript"> require(['jquery','tpl','core'],function(jquery,tpl,core){ var url="http://learn.cn/api.php"; core.json(url, {}, function (json) { var result = json.result; $('#shop').html( tpl('shop_goods',result) ); }); }); </script> </body> </html>
以上的页面要求商城首页打开默认使用异步加载数据显示。
解释以上代码:
RequireJS是一个非常小巧的JavaScript模块载入框架,用于加载其他js,config.js是配置要加载的js的位置和别名。core是人人商城的核心Js,内置非常的工具,例如提示,get/post工具。
core.json是获取后端json的方法,然后将后端发送的json赋予#shop下的shop_goods模板,然后就能进行循环了.
下载附件:
https://3gimg.qq.com/lightmap/v1/marker/index.html?marker=coord:37.6767600000,112.7297800000&key=TKUBZ-D24AF-GJ4JY-JDVM2-IBYKK-KEBCU&referer=p...
//构造函数 function Box(name,age){ this.name=name; this.age=age; this.run=function(){ return this.name+'--'+this.age; } } var&nbs...
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>点击复制</title> </head>...
var的作用域是全局的,let的作用域是块级的,直接看代码(其他的小区别忽略):<script type="text/javascript"> for (var a = ...
ES5中编写函数,为了给参数默认值,必须在函数体内对参数判断,着实揪心。ES6好多了。<script type="text/javascript"> function run(width = 100, height&...
基本结构:箭头函数左边是参数,右边是返回值//创建func函数let func = num => num;//上面的func函数等价于let oldFunc = function (num) {...