# 视图


# 渲染模板

使用 render 方法返回

import { Controller, Get } from '@tiger/common'

@Controller('examples')
export class ExampleController {
  @Get('create')
  create() {
    return new View('hello.html', {
      name: 'Zewail'
    })
  }
}


我们的模板文件存放于根目录下的 views 文件夹中,上例使用了 views/hello.html 模板文件,View 的构造函数共接受 2 个参数,第一个为模板路径,第二个参数为需要传递给模板文件的数据,类型为一个对象

路径也支持子目录传递

return new View('path/to/hello.html', {
  name: 'Zewail'
})

这样就调用了 views/path/to/hello.html 模板文件


# 传递数据

可以使用 render 方法的第二个参数进行传递

view.render([template] [, vars])

或者使用 assign 方法传递数据给模板

view.assign([key], [value])

# 示例

import { Controller, Get } from '@tiger/common'

@Controller('examples')
export default class Example extendsBaseController {
  // 示例一
  @Get('create')
  create() {
    const view = new View()
    view.assign('name', 'Dazejs')
    return view.render('hello.njk')
  }

  // 示例二
  @Get('edit')
  edit() {
    const view = new View()
    return view.render('hello.njk', {
      name: 'Dazejs',
    })
  }
}