2017-03-25 9 views
0

phtmlビューのすべてのビューにページ固有のjquery/javascriptを追加したい Phalconでこれを行う方法は?ここでは、事前Phalconビューでページ固有のJavaスクリプトを追加する方法

+0

PHTMLファイルを開き、 'script'タグを追加するだけです。それをすべてのページに追加するには、マスターレイアウトまたはフッタページであるPHTMLファイルを見つけてそこに追加する必要があります。 –

+1

@NikolaosDimopoulos特定のページにのみjavascriptファイルを含めたいと思っています。たとえば、スライダなどのページにのみスライダライブラリを持っている... –

答えて

2

おかげでページの特定の資産を含めるには二つの方法があります。

1)使用Phalcon Assets Manager

class NewsController extends Controller 
{ 
    public function index() 
    { 
     // Add some local CSS resources 
     $this->assets->addCss("css/style.css"); 
     $this->assets->addCss("css/index.css"); 

     // And some local JavaScript resources 
     $this->assets->addJs("js/jquery.js"); 
     $this->assets->addJs("js/bootstrap.min.js"); 
    } 
} 

ビュー:

<html> 
    <head> 
     <title>Some amazing website</title> 

     {{ assets.outputCss() }} 
    </head> 

    <body> 
     <!-- ... --> 

     {{ assets.outputJs() }} 
    </body> 
<html> 

2)テンプレートで簡単なforループを作り、あなたのコントローラで特定のアクションからファイル名を渡します。

class NewsController extends Controller 
{ 
    public function index() 
    { 
     $this->view->specificJavascripts = ['someFile', 'otherFile'] 
    } 
} 

そして、私の_footer部分で:

{% if specificJavascripts is defined %} 
    {% for script in specificJavascripts %} 
     <script src="{{ static_url('frontend/js/'~ script ~'.js') }}"></script> 
    {% endfor %} 
{% endif %} 

私は自分の資産を縮小化し、babelizeために私自身のNPMモジュールを使用しているので、私は個人的に、この変形を好みます。

+0

ありがとうございました...テンプレートにLaravelのような他のフレームワークをもう1つ質問すると、Javaスクリプトの一部を定義できます。ページ内(例:user.blade.php)に、スクリプトタグ内のその部分に書き込むときにテンプレートに含まれています。 Phalconのために、このような方法で。そして、コントローラから静的なスクリプトを管理する際に負担はかかりませんか? –

+1

@AzmathIkramそれはすべての好みです。他より良い方法はありません。コントローラーで資産を処理する場合は、その資産を保守する必要があります。ビュー内でその機能を移動する場合は、ビューを維持する必要があります。それぞれのJavaScriptを含む関連部分をいつでも作成し、必要な他のテンプレートに挿入することができます。 –

関連する問題