26
2019.2

模板赋值

作者: POPASP
虽然在模板文件中可以直接获取数据库的记录或者定义变量,但是我们推荐通过控制器把变量传递给模板,做到结构上的分层,系统提供了assign、d(3.0添加)方法对模板变量赋值,作者强烈建议大家忘记assign,现在从d开始吧,至少书写起来很方便。 ### that.d使用方法 格式: ```brush:html that.d("变量名") = 值 ``` that.d让分配变量更简单,如下 ```brush:vb '分配一个字符串 that.d("siteName") = "http://www.popasp.com" '分配一个数值 that.d("number") = 123 '分配一个Dictionary对象 dim dict set dict = D_ dict("name") = "popasp" dict("desc") = "POPASP给大家一个留恋ASP的理由" that.d("site") = dict '分配一个Recordset对象 that.d("rs") = B_("user").select ``` that.d方法使用起来很方便,不管分配值是什么类型,我们都可以简单赋值,在模板或视图中通过that.d分配的变量其数据类型保持不变。 ### 输出变量 在模板文件中,我们可以这样输出 ```brush:html {$siteName}
{$rs.userName} ``` ### that.assign使用方法 assign的参数有两个,一个是变量名name,一个是value。name必须是一个非空字符串。 使用方法如下: ```brush:vb call that.assign("name","popasp") ' 下面的写法是等效的 that.assign "name","popasp" ``` 如果要同时输出多个模板变量,可以使用下面的方式: ```brush:vb dim dict = D_ dict("name") = "popasp" dict("type") = "mvc" dict("desrciption") = "超级好用的asp版mvc框架" that.assign dict,"" '由于VBS的限制,第二个参数必须要输入,这里随便输个参数即可 ``` 这样,就可以在模板文件中同时输出name、email和phone三个变量。 掌握了that.d 方法就够用了,如果想了解that.assign使用,请往下看,否则可以去看别的章节了。 ### assign注意事项 assign的参数value如果是一“Recoredset”类型,那么会将“全部数据”传入。 ```brush:vb dim rs set rs = M_("post").db.field("id,title,add_time").select() that.assign "posts",rs ``` 这里的全部数据并非数据表中的全部数据,如果数据表有100万条记录,那么程序岂不崩溃,这里的全部数据是受配置项限制的 ```brush:vb ''POP_MVC.rs2dict最多可以取多少行 POP_MVC.config("RS_2DICT_LIMIT") = 2000 ``` 在默认配置中其实已经限定在了2000条,如果想获取更多,可以修改这个配置项。