2014-11-08 118 views
0

我想进入require.js以更清晰的方式构建我的js文件。所以我偶然发现require.js,经过一点点的挖掘和理解require.js是如何工作的,我意识到让它做我想要的东西是件相当困难的事情,因为它使用了它自己的范围,而不是什么。所以我认为它不适合zf2,因为它的工作方式。Zend框架2 require.js通过RdnRequireJs模块

经过小小的搜索,我偶然发现了一个2岁的zf2模块SxRequireJs。但不得不与我的虚拟主机和国防部重写周围,我决定反对它,并发现这RdnRequireJs。现在我按照所有安装步骤进行了以下设置。

//application.config.php 
//After successfully installing it trough composer I added the namespace 
'modules' => array(
    'Application', 
    'ZfcBase', 
    'ZfcUser', 
    'RdnRequireJS', 
), 

之后,我创建了一个Bar.js文件我/public目录中并在添加这些定义。

.min的//剥去文件名,以简化在这里呼吁

定义([ './ html5shiv '],功能(SHIV){ shiv.log(' 世界,你好!'); });

define(['./response'],function(resp){ resp.log('Hello World!');});

define(['./ jquery'],function(jq){0,'Hello World!');}); (''/ bootstrap'],函数(twboot){ twboot.log('Hello World!');});

之后,我在此改变RdnRequireJS配置我global.php内像这样:

return array(
'rdn_require_js' => array(
     'library' => '//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js', 

     'config' => array(
      'baseUrl' => '/modules', 

      'paths' => array(
       'App' => 'app/js' 
      ), 

      'packages' => array(
       'App' 
      ), 

      'shim' => array(), 

      'deps' => array(), 
     ), 
    ), 
); 

现在我试图使用视图助手让我的内嵌脚本会像RdnRequireJS的文档中建议。

我在我的layout.phtml以及模块的index.phtml内调用了<?php $this->requireJS('Bar') ?>,没有任何成功。 viewHelper返回'NULL',没有任何错误消息。我将配置更改为本地require.js文件,但没有任何成功。然后重命名rdn_require_js将baseUrl配置为模块,而不是模块,但是这并没有让我得到任何地方。

github似乎没有太多的贡献,也没有维基或任何问题。所以我想知道你们中的任何一个人是否真的知道它启动并运行?帮助将非常appriciated。

谢谢你的时间。

编辑:我忘了提及我还添加了文件夹app/js,它将我当前的js文件存储在我的项目根目录中。

回答

1

试图让它工作,我得到它加载Bar.js和Foo.js文件。它试图从/模块子目录加载它们在在配置

'config' => array(
     'baseUrl' => '/modules', 

本身不是假设返回任何输出视图助手定义公共。它只是将文件“Bar”添加到您的代码中。哪些需要js将尝试从“baseUrl”加载

RdnRequireJS然后将脚本添加到您的html末尾。看起来像这样的东西

var require = {"baseUrl":"\/modules","paths":{"App":"app\/js"},"packages":["App"],"shim":[],"deps":["Bar"]}; 

哪些需要js将加载。

我希望这会帮助你。

+0

谢谢!我缩小了问题的范围。如果我调用viewhelper通过我的module.php它的工作。如果我在我的观点中这样做,它不会。所以我想在我的viewhelper配置文件里有一些其他的错误。 – cptnk 2014-11-15 13:18:31