我想在我的Zend Framework应用程序中开始使用jQuery,但不确定哪种是最好的入门方式.我知道我可以像任何其他javascript库一样包含jQuery库,但是使用ZendX_JQuery有什么好处,在Zend Framework 1.9应用程序中开始使用它需要哪些步骤?
通过以下步骤,我能够在我的1.9.4项目中运行jQuery:
步骤1:将ZendX目录复制到库目录.ZendX可以在Zend Framework下载的extras/library目录中找到.
第2步:从jqueryui.com下载jQuery和jQuery UI库.我选择了UI Lightness主题.
步骤3:解压缩下载并将jquery-ui-1.7.2重命名为jquery并移至public/js目录.
第4步:将这些行添加到引导程序文件中:
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视图助手添加到布局文件中:
jQuery(); ?>
步骤6:要测试一切是否正常,请将此行添加到您的一个视图脚本中:
Pick your Date: datePicker("dp1", '', array('defaultDate' => date('Y/m/d', time()))); ?>
现在,如果您在浏览器中打开此页面,则应该有一个文本字段.您应该能够单击文本字段,该字段会自动弹出已设置为UI Lightness主题样式的日历.
一个小问题:
你必须将ZendX文件夹添加到你的库目录 - 也是你的Zend目录.
[your/lib/path] | +-Zend | | | +-(the full thing) | +-ZendX | | | +-JQuery, Db, Console, ...
如果您错过将ZendX添加到库目录中,则会收到大量错误消息,如下所示:
Fatal error: Uncaught exception 'Zend_Loader_PluginLoader_Exception' with message 'Plugin by name 'JQuery' was not found in the registry; used paths: ZendX_JQuery_View_Helper_: ZendX/JQuery/View/Helper/ Zend_View_Helper_: Zend/View/Helper/: .....
另一个小问题:
在上面安德鲁提供的代码中,请注意突出显示的重要单词:
Now add the jQuery view helper to your layout file:
php echo $this->jQuery(); ?>
To test that you have everything working, add this line to one of your view scripts:
Pick your Date: datePicker("dp1", .....
虽然$this->jQuery()
必须进入布局文件以便所有页面都获得jquery功能,但实际的jQuery代码必须转到视图文件本身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()->enable() ->uiEnable();