簡體   English   中英

將Javascript文件與View分開

[英]Separate Javascript file from View

我正在使用Codeigniter並希望將JavaScript與視圖文件分開,但是許多JavaScript函數需要來自控制器的數據(取決於控制器的值)

例如:

controller :

function show_post() {
    $data['data'] = $this -> get_data();                 //some data
    $data['random_key'] = $this -> generate_random();    //returns a random value
    $this -> load -> view('posts', $data);
}

並且鑒於我有一個js函數:

<script>
    function get_random() {
        return "<?= $random_key; ?>";
    }
</script>

如何將該JavaScript代碼段保存到其他文件,例如posts.js 如果我做了類似的事情,那么我將無法在腳本中使用php變量。

在性能和維護方面,實現此目標的最佳方法是什么?

我不想遵循的其他一些方法:

  1. 將JS文件另存為PHP文件,然后將值傳遞到該文件
  2. 全局聲明視圖文件中的所有那些變量

您可以將值作為參數傳遞給js函數,例如post.js

function get_random( param ) {
    //use param here
}
//OR
function get_random( ) {
    //get arguments like
   var firstArg = arguments[0]; 
}

view.php

//include post.js file
//call the js function passing php variable as parameter, like
get_random("<?php echo $random_key; ?>");

你的意思是這樣嗎

一種使用隱藏字段的方法,在您的情況下,將它們存儲在隱藏字段中,例如:

<input type="hidden" value="<?php echo $random_key;?>" id="randomkey">

並使用以下ID通過js訪問它們:

$("#randomkey").val();

這樣,您可以在js中使用控制器參數。

幫助它會幫助您!

最簡單的方法是,在視圖文件中將php變量定義為js變量

<script type="text/javascript">
    var random_key = <?= $random_key; ?>;
</script>

那么您可以在example.js文件中使用該變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM