2014-11-08 168 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