关于include的正确理解和用法
来源:互联网 发布:tvp动画软件 编辑:程序博客网 时间:2024/05/22 15:38
模板用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" />
但是由于官方教程说的不是太清楚,常造成误解。所以来说两句:
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用{}来包含而且这个参数名还要使用$符号。(自己的学习的遇到的小技巧)
0 0
- 关于include的正确理解和用法
- 关于include的正确理解和用法
- #include "" 和include<>的用法
- #include "" 和include<>的用法
- C语言中,#include的用法:#include "" 和 #include<>区别
- 关于画布canvas的rotate()和translate()的正确理解
- 关于c语言#include的用法
- #include"" 和#include<> 用法区别
- php中include和require的用法
- C和C++中include的用法
- php中include和require的用法
- 关于<jsp:include和<%@ include的区别
- C++中,关于#include<***.h>和#include"***.h"的区别
- C++中,关于#include<***.h>和#include"***.h"的区别
- C++中,关于#include<***.h>和#include"***.h"的区别
- 关于include指令和include动作的区别
- 关于#include<**.h>和#include"**.h"的区别
- 关于O(logN)的正确理解
- HDU5914 Triangle
- oracle 集合函数
- kmp算法 poj2752 Seek the Name, Seek the Fame
- 浏览器是如何实现事件——事件的源头EventTarget
- 用变量a给出下面的定义
- 关于include的正确理解和用法
- mybatis的查询类型
- Red Hat Enterprise 6.5 在虚拟机上将系统语言修改为中文
- HDU 5649 (二分 线段树)
- 关于 ZJCPC2004第二题
- Java VisualVM 多线程监控分析工具
- autoload之composer分析
- 我的第一次vi经历
- 详解Java中native关键字