2012-04-25 77 views
2

我編寫JavaScript這樣的:如何用Zend Framework和netbeans編寫JavaScript?

<?php $this->headScript()->captureStart();?> 
$(function(){ 
    // some javascript magic 
}); 
<?php $this->headScript()->captureEnd(); ?> 

但問題是,它沒有突出顯示,並且沒有自動完成......我試圖寫這樣的:

<?php $this->headScript()->captureStart();?> 
//<script> 
$(function(){ 
    // some javascript magic 
}); 
<?php $this->headScript()->captureEnd(); ?> 

現在它突出但NetBeans是不滿意不收<script>標籤,並與Zend其他一些問題...然後經過一些谷歌上搜索發現這一點:

<?php if(false) {?><script><?php } ?> 
$(function(){ 
    // some javascript magic 
}); 
<?php if(false) { ?></script><?php } ?> 

工作正常,但也許有更好的解決方案呢?

+0

我很抱歉地說,你無法突出其創建一個新的netbeans插件,我確實也需要它 – tawfekov 2012-04-25 09:24:20

回答

1

您可以擴展用HeadScript,這是最簡單的解決方案:

class My_View_Helper_HeadScript extends Zend_View_Helper_HeadScript 
{ 
    public function captureEnd() 
    { 
     $content = ob_get_contents(); 
     ob_clean(); 
     echo strip_tags($content, 'script'); 

     parent::captureEnd(); 
    } 
} 

指定的助手路徑:

resources.view.helperPath.My_View_Helper = "My/View/Helper" 

用法:

+0

是的,這應該工作,但不知道巫婆是更好..似乎對我來說,哈克。但多謝一個例子。 – Vytautas 2012-04-26 12:15:19

+0

好吧,可能在這種情況下最好的是什麼更適合你,對我來說擴展比使用if(false){..}更明顯,但這是有爭議的問題。 – 2012-04-28 08:15:51

+0

我沒有說過它更好。只是希望有更好的解決方案。我會接受你的回答,因爲沒有找到更好的方法來處理這個問題。 – Vytautas 2012-04-30 09:04:44

2

在外部JS文件中寫入您的js。

這將允許更好的分離,更好的緩存,更好的聚集,更好地突出顯示等

這裏有一些鏈接,可以幫助您:

+2

是的,但有時我需要這樣寫,當我需要自定義JavaScript或只是在一些特定c動作,或動態生成JavaScript ..也許netbeans有一些插件或東西.. – Vytautas 2012-04-25 07:48:39

+1

對於你的任何情況,我沒有看到任何理由不使用外部JavaScript文件。 – 2012-04-25 07:51:16

+0

好吧,如果我只是需要像'$('。gallery')。lightbox({一些特定的選項})''爲什麼我會想創建js文件?它可能比這更復雜..我需要它只是在一個頁面 – Vytautas 2012-04-25 07:56:39