2015-02-06 32 views
0

好的,這裏是場景。我在mvc應用程序中有一個局部視圖,它被渲染爲一個kendo彈出窗口內容。現在,我需要創建一個變量(這是一個數組),我可以從這個局部視圖腳本中的任何方法訪問它,但它應該從這個彈出框中看不見。原因是我需要爲這個特定的彈出窗口存儲數據,並且可以有幾個這樣的彈出窗口。我怎樣才能做到這一點?MVC製作局部視圖的全局js變量

+0

你真的想爲一個私有變量彈出或你只是想爲每個彈出一個唯一的變量? – rajeemcariazo 2015-02-06 15:58:08

+0

@rajeemcariazo,每個彈出窗口都有獨特的變量。對不起,如果我不夠清楚,我的英語遠非完美 – KorsaR 2015-02-06 16:04:22

回答

0

當你宣佈你的窗口,你可以設置,像這樣的變量:

var myWindow = $("#window"); 
myWindow[0].myVariable = [1,2,3]; 
0

對於它的價值,以獲得更好的答案,你應該儘量讓你的問題儘可能地通用。假設對劍道有所瞭解,意味着只有那些熟悉劍道的人才能夠回答(至少很容易),而這實際上並不針對你使用劍道的事實。最好是說「我有一個顯示在同一頁面上呈現HTML的模式窗口(即不是通過iframe或其他東西)」。

無論如何,你只需要使用某種數組或對象來保存彈出窗口的所有變量。您絕對不應該依賴JavaScript window對象,因爲存儲在其中的任何對象都是真正的全局對象,並且可能會被頁面上運行的任何其他腳本覆蓋或篡改。您應該創建一個命名空間爲您的應用程序,如果你還沒有這樣做的話,並存儲任何東西,一切都在該命名空間:

var MyAwesomeNamespace = MyAwesomeNamespace || {}; 

MyAwesomeNamespace.foo = "bar"; 

的名稱並不重要;只是選擇一些不太可能被世界上任何其他人使用的東西,比如你組織的名字。

一旦你有了這個,就像我說的,你會想要使用一個數組或對象。你選擇哪個取決於你想如何處理它。有了數組,你需要通過一些整數索引來選取值。例如,如果您的彈出窗口通過for循環呈現,您可以爲它們分配一個包含此索引的id或data- *屬性,然後使用它從數組中選擇正確的項目。

如果事情是有點比這更隨意,你可能只是想通過一些屬性像其ID彈出的使用對象和重點:

MyAwesomeNamespace.PopupVariables[popup.getAttribute(id)];