2015-02-06 1 views
0

Хорошо, вот сценарий. У меня есть частичный вид в приложении mvc, который отображается как содержимое окна всплывающего окна кендо. Теперь мне нужно создать переменную (которая есть массив), к которой я могу получить доступ из любого метода внутри этого частичного сценария просмотра, но она должна быть невидимой из этого всплывающего окна. Причина в том, что мне нужно хранить данные для этого конкретного всплывающего окна, и может быть несколько таких всплывающих окон. Как я могу это достичь?MVC, создающий глобальную переменную js для частичного просмотра

+0

вы действительно хотите личную переменный для popup или вам просто нужна уникальная переменная для каждого всплывающего окна? – rajeemcariazo

+0

@rajeemcariazo, уникальная переменная для каждого всплывающего окна. Извините, если я не был достаточно ясен, мой английский далек от совершенства – KorsaR

ответ

0

Когда вы объявляете окно, вы можете установить переменную, которая, как это:

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

Для чего это стоит, чтобы получить лучшие ответы, которые вы должны попытаться сделать свой вопрос, как родовое, насколько это возможно. Предполагая знание кендо, означает, что только те, кто знаком с Кендо, могут ответить (хотя бы легко), тогда как это действительно неспецифично для факта, что вы используете Kendo. Лучше сказать: «У меня есть модальное окно, которое отображает HTML, отображаемый на одной странице (т. Е. Не через iframe или что-то еще»).

В любом случае вы просто захотите использовать какой-либо массив или объект, чтобы удерживать все переменные для всплывающих окон. Вы абсолютно не должны полагаться на объект JavaScript window, поскольку все, что хранится там, действительно глобально и может быть перезаписано или иным образом изменено любым количеством других скриптов, запущенных на странице. Вы должны создать пространство имен для вашего приложения, если вы еще не сделали этого, и хранить все что угодно и все, что в этом пространстве имен:

var MyAwesomeNamespace = MyAwesomeNamespace || {}; 

MyAwesomeNamespace.foo = "bar"; 

Имя не имеет значения; просто выберите что-то уникальное, что вряд ли будет использовано кем-либо еще в мире, например, именем вашей организации.

Как только у вас есть это, то, как я уже сказал, вы захотите использовать массив или объект. Который вы выбираете, зависит от того, как вы хотите справиться с этим. С помощью массива вам нужно будет выбрать значения через некоторый целочисленный индекс. Например, если ваши всплывающие окна отображаются через цикл for, вы можете назначить им атрибут id или data- *, который содержит этот индекс, а затем использовать его для выбора нужного элемента из массива.

Если что-то немного более случайный характер, чем это, вы, вероятно, просто хотите использовать объект и ключ от каких-либо свойств на всплывающем окне, как его идентификатор:

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