【发布时间】:2010-12-09 15:59:39
【问题描述】:
我想在我的 Zend Framework 应用程序中开始使用 jQuery,但不确定哪种方法是最好的开始。我知道我可以像任何其他 javascript 库一样包含 jQuery 库,但是使用 ZendX_JQuery 有什么优势,以及在我的 Zend Framework 1.9 应用程序中开始使用它的必要步骤是什么?
【问题讨论】:
标签: jquery zend-framework jquery-ui
我想在我的 Zend Framework 应用程序中开始使用 jQuery,但不确定哪种方法是最好的开始。我知道我可以像任何其他 javascript 库一样包含 jQuery 库,但是使用 ZendX_JQuery 有什么优势,以及在我的 Zend Framework 1.9 应用程序中开始使用它的必要步骤是什么?
【问题讨论】:
标签: jquery zend-framework jquery-ui
按照以下步骤,我能够让 jQuery 在我的 1.9.4 项目中工作:
第 1 步:将 ZendX 目录复制到您的 library 目录中。 ZendX 可以在 Zend Framework 下载的 extras/library 目录中找到。
第 2 步:从 jqueryui.com 下载 jQuery 和 jQuery UI 库。我选择了 UI Lightness 主题。
第 3 步:解压缩下载并将 jquery-ui-1.7.2 重命名为 jquery 并移至您的 public/js 目录。
第 4 步:将这些行添加到您的 bootstrap 文件中:
protected function _initViewHelpers()
{
$view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper");
$view->jQuery()->addStylesheet('/js/jquery/css/ui-lightness/jquery-ui-1.7.2.custom.css')
->setLocalPath('/js/jquery/js/jquery-1.3.2.min.js')
->setUiLocalPath('/js/jquery/js/jquery-ui-1.7.2.custom.min.js');
}
第 5 步:现在将 jQuery 视图助手添加到您的 layout 文件中:
<head>
<?php echo $this->jQuery(); ?>
</head>
第 6 步:要测试您是否一切正常,请将此行添加到您的查看脚本之一:
Pick your Date: <?php echo $this->datePicker("dp1", '', array('defaultDate' => date('Y/m/d', time()))); ?>
现在,如果您在浏览器中打开此页面,应该会出现一个文本字段。您应该能够单击文本字段,该字段会自动弹出一个样式为 UI Lightness 主题的日历。
【讨论】:
一点陷阱:
您必须将 ZendX 文件夹添加到您的 library 目录——该目录也包含您的 Zend 目录。
如果您错过将 ZendX 添加到您的 library 目录,您会收到很多这样的错误消息:
致命错误:未捕获的异常“Zend_Loader_PluginLoader_Exception” 在注册表中找不到消息“名称为“JQuery”的插件; 使用的路径: ZendX_JQuery_View_Helper_: ZendX/JQuery/View/Helper/ Zend_View_Helper_: Zend/View/Helper/: .....另一个小陷阱:
在上面 Andrew 提供的代码中,请注意突出显示的重要词:
虽然$this->jQuery() 必须进入 layout 文件以便所有页面都获得 jquery 功能,但实际的 jQuery 代码必须进入 view 文件 本身 - application/views/scripts/yourcontroller/youraction.pthml - 仅此简单代码在布局中不起作用。
【讨论】:
解决办法是——>
protected function _initView()
{
$view = new Zend_View();
$view->doctype('XHTML1_STRICT');
$view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8');
$view->headTitle()->setSeparator(' - ');
$view->headTitle('IMR - BI System');
$view->env = APPLICATION_ENV;
$view->baseUrl = Zend_Registry::get('config')->root_path;
$view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper");
$view->jQuery()->addStylesheet($view->baseUrl . '/js/jquery/css/south-street/jquery-ui-1.8.2.custom.css');
$view->jQuery()->setLocalPath($view->baseUrl . '/js/jquery/js/jquery-1.4.2.min.js');
$view->jQuery()->setUiLocalPath($view->baseUrl .'/js/jquery/js/jquery-ui-1.8.2.custom.min.js');
$view->jQuery()->enable();
$view->jQuery()->uiEnable();
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
$viewRenderer->setView($view);
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
return $view;
}
我刚刚将我的代码从 _initViewHelpers 转移到 _initView
它对我有用。
【讨论】:
只是想补充一点,您必须(或至少我必须)在 _initViewHelpers 函数中启用 jquery 和 jquery 组件:
$view->jQuery()->启用() ->uiEnable();【讨论】:
作为user117640伤心,
我必须启用 jQuery 和 UI,可以在以下位置完成:
引导:
//it will enable for all views
$view->jQuery()->enable()->uiEnable();
控制器::someAction :
//JQ enabled for particular view)
$this->view->jQuery()->enable()->uiEnable();
查看 someAction.phtml:
//JQ enabled for particular view
<?php $this-jQuery()->enable()->uiEnable(); ?>
【讨论】:
将此包含到您的引导文件中
$view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper");
$view->jQuery()->addStylesheet('/Your Public Path/js/jquery/css/ui-lightness/jquery-ui-1.7.2.custom.css')
->setLocalPath('/Your Public Path/js/jquery/js/jquery-1.3.2.min.js')
->setUiLocalPath('/Your Public Path/js/jquery/js/jquery-ui-1.7.2.custom.min.js');
将此添加到您的布局中
<head>
<?php echo $this->jQuery(); ?>
</head>
并在您的视图文件中使用 jQuery UI 函数: 选择您的日期:
<?php echo $this->datePicker("dp1", '', array('defaultDate' => date('Y/m/d', time()))); ?>
【讨论】: