thinkphp在前端页面的js代码中可以使用 U方法吗? 可以使用模板变量如__URL__等吗?

thinkphp在前端页面的js代码中可以使用 U方法吗?
可以的!
tp的U方法, 是"全局的", 什么是全局的? 就是, 可以在 "任何地方"使用的: 可以在前端使用, 这里的前端页面, 说的是, 整个html前端页面, 既然是整个html页面, 就是说, 既可以在dom 元素中body中使用, 主要是ajax, 超链接a的href等地方;
更是指:  html页面中的 js代码中

但是, 要注意, U方法可以在任意地方使用, 包括前端页面和后端页面, 两者的使用方法, 使用形式是不一样的:

  1. 在前端页面, (包括body元素内, 和js 代码内), 都是用 {:U('...')} 形式来使用的, js 中也是使用 {:...} 方式的;

  2. 而在后台页面, 就直接是调用U方法了, 不需要加什么大括号了 : echo U('checkVerify');

实际上, U方法 本身是可以带 传值参数的, 即 function U(url, [vars=array(), string,..], ....) 只是通常我们都没有传递后面的那个vars.

但是, 模板常量, 即在 ThinkPHP\Library\Behavior\ContentReplaceBehavior.class.php中的 函数: protected templateContentReplace($content){ $replace = array(....)... } 中定义的 URL, MODULE, 等, 这些模板常理, 就只能 在 模板的 html dom body 中使用了, 而不能在 js中使用. 因为U方法是 "全局的 而且是函数, 所以当然 可以在js中使用. 而 模板变量在js中使用就没有意义了, 因此, 它只能在 html中使用, 于是在js的ajax的url中 要使用 U方法, 而不能使用 模板变量!

posted @ 2017-03-24 09:45  noitanym  阅读(3357)  评论(0编辑  收藏  举报