zhaoda / spa

A webapp framework for routing control and view transitions
http://zhaoda.net/spa/docs/
MIT License
330 stars 92 forks source link

关于挂载模板引擎的问题! #19

Closed fyunos closed 9 years ago

fyunos commented 9 years ago

我目前在基于spa演示在做项目测试,发现没有模板引擎实在是不太方便,spa的架构我还不太了解,能否指点一下如何挂载一个模板引擎或者帮忙挂载一个呢?

zhaoda commented 9 years ago

SPA框架不包含模板引擎功能,你可以选择自己熟悉的模板引擎引入到项目中,只要在定义视图的view方法中获取数据并通过模板引擎拼装html就可以,然后将拼装好的html触发给spa:initpage事件,这是我们在实践中常用的方案。

如下是一个代码案例:

var pageHottopic = {
  route: 'hottopic',
  classname: 'hottopic',
  animate: 'pushInLeft',
  title: '热门话题推荐',
  view: function(pageData) {
    var $page = this,
        context = {
          app: app
        },
        body = txTpl(tmpl, context) // txTpl是我们使用的模板引擎,你可以选择其他自己熟悉的

    // 下面的这行代码是关键,是将拼装好的html触发给spa:initpage事件
    // 也可以通过ajax获取异步数据后拼装模板,然后在ajax成功的回调再执行下面的代码
    $doc.trigger('spa:initpage', [$page, {body: body, context: context}])
  },
  init: function(pageData) {
    // 视图渲染后执行一些初始化工作
  }
}