2017-02-07 47 views
0

AppAsset:

public $js = [ 
    'plugins/jquery/jquery.min.js', 
    'plugins/jquery/jquery-migrate.min.js', 
    'app.js', 
]; 

所以我wiriting在視圖文件:

$script = <<< JS 
    jQuery(document).ready(function() { 
     App.init(); 
     }); 
    JS; 
$this->registerJs($script, View::POS_END); 

它不Yii中工作的視圖文件,我的意思是什麼都不會發生。在簡單的HTML它是這樣的:

<script> 
jQuery(document).ready(function() { 
    App.init(); 
}); 
</script> 

它的工作。

我不明白爲什麼它在Yii中不起作用。

+0

你的問題不清楚App.init的含義是什麼..你在你的瀏覽器控制檯中有錯誤..你期待從函數 – scaisEdge

+0

做什麼你是什麼意思'不起作用?你有正確的順序js文件嗎?你有加載單個jQuery庫嗎?你在控制檯中遇到任何錯誤嗎? – Justinas

+0

這個功能不重要。我敢肯定,Javascript文件是正確的,因爲它在簡單的HTML文件中工作。它在Yii項目中不起作用。 –

回答

1

$this->registerJs()默認創建的文件準備好包裝,您只需要添加要包括在函數的第一個參數特定視圖腳本

$script='App.init();'; 
$this->registerJs($script); 
+0

謝謝,但它仍然不起作用 –

+0

你確定相對的js被加載到頁面上嗎?控制檯中是否有錯誤? –

0

Yii2,默認情況下,加載javascript之後的jQuery。 在AppAsset.php中,$ JS []數組後,添加以下代碼:

public $jsOptions = [ 
    'position' => \yii\web\View::POS_HEAD 
]; 

現在應該正常工作。

+0

謝謝你的回答,但它沒有幫助。 –