2012-03-08 45 views
0

我從我的Razor視圖尋找最好的方式來將數據傳遞給我的JS文件。例如,假設我們有一個在js文件中配置的jQuery對話框。對於此對話框中的按鈕文本,我想將其本地化(通過資源文件FR/NL/UK)。該翻譯也可以用@ UserResource.ButtonDelete + @ UserResource.ButtonCancel傳遞數據文件

下面是不同的解決方案我看到:

  1. 使用nice RazorJS NuGet包來讓我的JavaScript文件中的代碼剃刀。它工作得很好。但問題是:它是一個不好的做法,編譯才能使用的腳本里面剃刀語法js文件?

  2. 聲明全局變量在JS腳本文件,並從這樣的觀點賦值:

在視圖:

<script> 
     var labelButtonDelete = @UserResource.ButtonDelete; 
</script> 

在js文件:

alert('The text for my button is ' + labelButtonDelete); 

什麼是從剃刀數據傳遞到js文件的最好方法?你有另一種選擇嗎?

還是要謝謝你。

回答

1

我一直在使用像你的,沒有任何問題,一段時間第二種方法。唯一的區別是我在我的JS文件中使用singleton以避免污染全局javascript命名空間。

但是,如果你會做更嚴重的客戶端的東西,你的Javascript代碼將遵循更多的面向對象的結構,並從那裏你幾乎自動獲得一個初始化/構造函數路徑,你可以傳遞你的本地化值。

這RazorJS看起來不錯,但我不知道如果我舒服剃刀混合的JavaScript。可以做一個小項目,但是如果你有很多Javascript文件,我可以看到它變得非常混亂。

畢竟,我仍然認爲資源/本地化代碼進行相關的視圖。 Javascript應該只在我看來實現功能。