2014-05-14 95 views
0

在我的MVC項目中,我在共享佈局中導入了一個.js文件。用jquery更改javascript變量

<script src="@Url.Content("~/Scripts/bootbox.js")" type="text/javascript"></script> 

該文件有此變量

var locales = { 
      en: { 
       OK: "OK", 
       CANCEL: "Nej", 
       CONFIRM: "Ja" 
      }} 

在我想改變OKen與jQuery的視圖之一。我怎樣才能做到這一點?

+0

'locales.en.OK = '恩' 打電話了嗎? –

+0

does not work,說它沒有定義 –

+0

我們可以在一個視圖中訪問js變量給其他人嗎? –

回答

2

假設文件語言環境定義爲一個全局變量,

locales.en.OK = 'en'; 

需要明確的是,雖然,這無關與jQuery,剃鬚刀,或者模型 - 視圖 - 控制器。這只是你如何設置本地Javascript中的對象的屬性,沒有進一步的技術需要這樣做。


我現在已經下載了bootbox.js來看看這裏發生了什麼。語言環境爲而不是定義爲全局變量,它的作用域爲包含bootbox.js所有內容的匿名包裝函數。

這意味着無法從該範圍外動態更改該變量的內容。如果您想永久更改該文本,則可以手動將其更改爲bootbox.js。如果要動態地改變它,那麼你就可以

window.locales = ... 
在bootbox.js

取代

var locales = ... 

,然後用我原來的建議,在自己的代碼。

0

您可以在一定範圍內聲明locales,在全球範圍之外定義locales或僅從locales刪除var,如下所述。 `;

locales = { 
    en: { 
    OK: "OK", 
    CANCEL: "Nej", 
    CONFIRM: "Ja" 
}} 

您可以通過locales.en.OK