我们在《Jsnpp框架模板变量》一文里面介绍了Jsnpp框架模板变量的结构,我们已经知道形如“{$name}”这样的就是模板变量的标签,可以直接在模板文件里面使用这个模板变量的标签。
然而,我们要在模板文件里面使用模板标签,需要先在控制器的方法里面生成该模板变量。
先看下面的代码:
$this->view->assign('webroot', $this->route->rootUrl())->display();
上面的代码是您拿到Jsnpp后“index”控制器里面默认的代码,这个代码里面实际上生成了一个模板变量“webroot”,通过查看上面的代码,我们可以发现,模板变量的生成需要使用“assign”。
“assign”有两个参数,第一个就是模板变量名,也就是模板标签的名称,这里是“webroot”,那么我们在模板文件里面就可以使用“{$webroot}”来输出内容。
代码中的“webroot”是用于输出网站根目录的,我们还可以使用下面的代码来生成一个模板变量:
$this->view->assign('webroot', $this->route->rootUrl())->assign('name', '张三')->display();
上面代码里面我们用“->assign('name', '张三')”生成了另一个模板变量,当我们把这个基于“name”模板变量的模板标签写入模板文件的时候,在浏览器里面我们就能够看到“张三”这个名字了。
进一步,在全链代码里面,我们也可以通过类似的方法来生成模板变量,我们看下面的代码:
$this->app...->output->assign('name', '张三')->display()->finish();
在上面的代码里面我们在全链的出口处添加了“->assign('name', '张三')”,这个效果跟前面介绍的是一样的,都可以生成模板变量“name”,并且当我们把这个基于“name”模板变量的模板标签写入模板文件的时候,在浏览器里面我们就能够看到“张三”这个名字了。
如果对Jsnpp框架全链的出口还不了解的话,可以参看这篇:《全链代码中的页面内容输出》内容。
如果需要更多的模板变量,那么可以连续写,如下面的代码:
$this->app...->output->assign('name', '张三')->assign('age', 20)->display()->finish();以上代码可以生成两个模板变量,分别是“name”和“age”。您现在可以在模板文件里面通过模板标签来输出这两个值。