我知道這個問題已被問了好幾次,但我似乎無法找到一個適當的解決方案,我的問題。如何處理在MVC網站查看特定的Javascript
我使用CodeIgniter,一個遵循MVC(模型 - 視圖 - 控制器)原理的PHP框架。
我有很多javascript文件,如jQuery和其他通用庫,我需要爲每個頁面包含在頭標記中。我也有查看特定的JavaScript,直接嵌入在腳本塊的視圖。
視圖的例子customerInfo.php:
<script type="text/javascript">
// some javascript here for customerInfo view
// I MUST be able to use PHP variables in this script block ex:
var customerName = "<?php echo $customerName; ?>";
</script>
<p class="someClass">Hello <?=$customerName?>, may the lord provide you with bananas</p>
我的網站佈局如下:
<html>
<head>
<script src="http://coolStorybro.com/jquery.js" type="text/javascript"></script>
<script src="http://coolStorybro.com/commonStuff.js" type="text/javascript"></script>
</head>
<body>
<div class="header">some header stuff</div>
<div class="pageContent">
<?php echo $view; ?> // In this case, $view will hold the view customerInfo
</div>
</body>
</html>
我的目標是有我在同一個地方所有的JavaScript,所以我可以縮小它,並最終將其放在我的頁面底部進行加載優化。
我知道我可以存儲該視圖特定的JavaScript在被稱爲customerInfo.js一個單獨的文件,並在頭標籤加載它,但我覺得這太過分了創建一個單獨的JavaScript文件爲每個查看和我將無法使用PHP在他們,我必須。
所以我問你們,有沒有解決我的問題,或者我註定我的網頁與腳本塊聚集在一起?
謝謝你的時間。
編輯:
莫不是把視圖特定的JavaScript(所有視圖)在一個文件中並以某種方式在模塊單獨它,只有加載特定的模塊,用於所需的視圖的方法嗎?
比方說viewsJS.js擁有所有該視圖特定的javascript:
module ("customerInfo",
$(".someClass").html("Bla bla bla");
);
module ("invoiceInfo",
// Some code to be executed when the invoiceInfo module is loaded
);
一旦確定了每個模塊(意見)的JavaScript的定義,有將其加載到其相應的視圖的方式。事情是,我不能在我的視圖中有一個腳本塊來「加載」模塊,所以......我無能爲力。
你有沒有試過像commonjs/amd模塊系統? – Ven 2013-03-18 14:46:38
您不必在腳本中嵌入PHP。您可以將這些信息放入HTML元素的「數據」屬性中,或者類似的東西。 – Pointy 2013-03-18 14:47:36
將javascript添加到頁面底部而不是頁眉是不好的做法。 – Derfder 2013-03-18 14:53:42