如题,有这么一个场景,前端一个页面ajax请求后端在js中拿到json数据,然后我想用一个html模板绑定这个json数据、再加载到当前页面的指定位置。注:发起请求的页面跟即将绑定数据的html模板页面不在同一页面。如:A.html发起请求 B.html是模板页 。
A.html页面
<html>
....
<body>
<header></header>
<div id="content">插入指定位置</div>
<footer></footer>
</body>
</html>
B.html页面 这个页面就直接是内容没有html body标签
<ul>
<li>{{xxx}}</li>
</ul>
没怎么做过前端,旺各位大侠给点方案,比如用xxx第三方等
移动端单页面web应用开发 讨论前端技术 谈谈大家的解决方案
artTemplate-master 可以看看这个js模板引擎
感谢 我谷歌一下
@_Chance: https://github.com/aui/artTemplate
@秋壶冰月: 我找到了,但是上面没有告诉我在不同页面如果做,他的dome都是在同一个页面做这些事情
@_Chance:
<script id="list" type="text/html"> //相当于引入的模板文件,不能满足你的需要吗 <ul> <% for (var i = 0; i < list.length; i ++) { %> <li>索引 <%= i + 1 %> :<%= list[i] %></li> <% } %> </ul> </script>
@秋壶冰月: 如果我有一个主页A页面, B、C两个页面为模板页
我要如果去加载B、C两个页面绑定数据 并插入到A页面指定位置
这个些dome都是在同一页面进行的
@_Chance: 如果是这样的话,靠js模板引擎,应该做不到吧,只能用NVelocity这类的模板引擎在后台将数据传递给模板页(这个读取多个html页面模板),最后输出一个页面展示出来
@秋壶冰月: 应该是可以的 Angular.js 我参考过他的代码 但是他太大了 手机上效率不好
$routeProvider.
when('/vip-home',{templateUrl : 'view/xx/xx.htm',controller:xxController}).
otherwise({redirectTo : goToUrl});
他的伪代码类似这样
@_Chance: Angular.js 没用过,这个不清楚
用JQuery一行代码搞定
1 $("#content").load("B.html");
不建议时候load
你可以使用ajax异步加载,使用razor引擎来定义你的模板
JAVA
用ng或者jq的ajax吧,简单方便,和你用什么语言无关
我来看看,模版在移动开发可能用到,哈哈
http://my.oschina.net/JackSparrow/blog/214049 这个轻量级实现适合你
可以使用doT.js插件。在A中使用ajax请求,先请求模板,再去请求数据,然后将数据绑定到模板上,最后将将绑定好的内容加到你要显示的位置上去。
和你们的后端工程师商量一下,比较好的实现方式应该是这样:
利用后端模板引擎构造出合适的html字符串,然后你通过ajax请求到的不是json数据,而直接就是已经处理好的html字符串,然后一切easy了。
这样不会有两次请求了:一次获取json数据,一次获取模板文件。