thinkphp在前端页面的js代码中可以使用 U方法吗?
: 可以的!
tp的U方法, 是"全局的", 什么是全局的? 就是, 可以在 "任何地方"使用的: 可以在前端使用, 这里的前端页面, 说的是, 整个html前端页面, 既然是整个html页面, 就是说, 既可以在dom 元素中body中使用, 主要是ajax, 超链接a的href等地方;
更是指: html页面中的 js代码中
但是, 要注意, U方法可以在任意地方使用, 包括前端页面和后端页面, 两者的使用方法, 使用形式是不一样的:
在前端页面, (包括body元素内, 和js 代码内), 都是用 {:U('...')}
形式来使用的, js 中也是使用 {:...} 方式的;
而在后台页面, 就直接是调用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方法, 而不能使用 模板变量!