关于include的正确理解和用法
模板用include引入是非常灵活的一种布局方案。
但是由于官方教程说的不是太清楚,常造成误解。所以来说两句:
1.首先include引入的模板和action对应的模板之间的区别。
这是最容易混淆的。action对应的模板是和action绑定的。
而include模板和action么有任何关系!
include模板只是一段html,可以放在任何地方。它的参数不会经过定义它的那个action的解析,而是使用它的那个action才影响它的解析。
如果你用过js的模板就很好理解。
混淆的地方是include可以用控制器/方法的模式引用,这个意思只是说action控制器的view也可以作为模板来使用。但是使用的只是view中的html代码而已。action当中的代码是不会被执行的!
2.include的数据来源。
include的数据源不是action,而是在include标签中传入的,比如官方教程的例子:
<include file="Public/header" title="ThinkPHP框架" keywords="开源 WEB开发框架" />
这里title和keywords是两个变量传递到include模板中了,这两个变量可不是action提供的啊。
结论:
include模板是独立的,可以再任何地方调用。具有接收参数的功能。
牢记;谁用谁传参!
把action的view作为include模板只是方便使用现成的html而已。当action对应的view作为include模板引入的时候,它已经异化成了独立的html片段,和action没有任何关系了。所以官方的说法:
注意,包含模版文件并不会自动调用控制器的方法,也就是说包含的其他模版文件中的变量赋值需要在当前操作中完成。
include中如果包含变量,来源也是当前使用这个include的action,而不是作为view来源的那个action!那个action是不会被执行的!现在你可以理解了吧。
所以,理解include模板的关键就是它是很多可以重用的html片段的组织方式。至于这些片段是独立存在的html还是action中的view都无所谓。
至于本人的做法,则是放到放置css,img,js的那个public文件夹下面。加一个htmltpl的文件夹,引用的时候
<include file="./Public/htmltpl/abc.html" />
浅显的理解,不知道说明白了没有。
注意:用include传过来的参数要用[] 来包含参数名,action用{}来包含而且这个参数名还要使用$符号。(自己的学习的遇到的小技巧)
关于include的正确理解和用法相关推荐
- string_view理解与用法(二)
以前写了<string_View理解与用法(一)>和<详解C++17下的string_view>,请参考. 本篇文章从string_view引入的背景出发,依次介绍了其相关的知 ...
- c语言正确理解以下名词及其含义,C程序作业答案.doc
C程序作业答案.doc 什么是程序及程序设计 程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合.为实现预期目的而进行 操作的一系列语句和指令.一般分为系统程序和应 ...
- 正确理解scipy中的coo_matrix函数
正确理解scipy中的coo_matrix函数 1. 构造一个空矩阵 2. 使用ijv(triplet)格式构造一个矩阵 3. 用重复的索引构造矩阵 1. 构造一个空矩阵 这种用法比较简单,直接生成一 ...
- 对于EnterCriticalSection和LeaveCriticalSection的理解和用法
对于EnterCriticalSection和LeaveCriticalSection的理解和用法 2015年08月26日 11:58:08 阅读数:4966 线程锁的概念函数EnterC ...
- ADSL的PPPOE拨号客户端上的ppp authentication pap “callin”的正确理解
ADSL的PPPOE拨号客户端上的ppp authentication pap "callin"的正确理解 对callin参数的理解一定要注意,很容易单让初学者通过"中国 ...
- 调整模型 与 提纯样本的关系过程有点类似EM算法过程,不知道这样理解是否是正确理解,固定A调B,B调到最优后,固定B再调A,循环往复,直至最优。
调整模型 与 提纯样本的关系过程有点类似EM算法过程,不知道这样理解是否是正确理解,固定A调B,B调到最优后,固定B再调A,循环往复,直至最优. 个人理解
- python模块之HTMLParser之穆雪峰的案例(理解其用法原理)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser之穆雪峰的案例(理解其用法原理) #http://www.cnblog ...
- html的区域大小,JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性...
在web开发中,不可避免遇到要计算元素大小以及位置的问题,解决这类问题的方法是利用DOM提供的一些API结合兼容性处理来,所有内容大概分3篇左右的文章的来说明.本文作为第一篇,介绍DOM提供的与尺寸大 ...
- 智能的定义是什么?如何正确理解智能家居?
近几年,智能家居是一个比较火爆的行业!有很多的人(特别是寻找好的创业的项目的朋友)想从事这个行业,也有很多是想在自己家里装上智能化,享受科技带来的生活便利:还有部分人处于对智能家居的了解期.不管你属于 ...
最新文章
- 阿里DataV可视化大屏基本操作
- vue新版本和旧版本关闭eslint总结
- 如何关闭idea中反编译文件时的弹框提示?
- 设计模式--动态代理
- 全球六大国际域名解析量统计报告(6月25日)
- wps for linux alpha 15 语言包,WPS Office for Linux Alpah 7发布
- 今晚直播丨MySQL的查询与优化
- sql字符处理函数concat()、concat_ws()
- C语言中指针数组和数组指针
- Create Table Like Mapping: 基于类型推断的建表方法
- 有趣好玩恶搞的C语言程序,有趣搞笑的整人VBS小脚本(整菜鸟专用)
- 计算机里边的单位换算:b、KB、MB、GB、TB等
- [导入]【沈殿霞张曼玉经典爆笑鬼片】《双肥临门》【国语DVD中字】
- HLA RTI(Run-time Infrastructure)
- 详谈SSD硬盘接口: SATA、mSATA 、PCIe、M.2和U.2
- 网络错误CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/mai...
- 2144775-48-2,D-Biotin-PEG6-Thalidomide可用于cereblon(CRBN)结合和置换分析
- 100以内所有质数的输出。
- java写的表白小程序_Java实现表白小程序
- 《机器学习实战》斧头书——第三章—决策树(1)——使用决策树预测你是否需要带隐形眼镜