Объединение различных объектов JavaScript, представленных несколькими компонентами - PullRequest
0 голосов
/ 13 октября 2008

У меня есть компонент, который пишет / генерирует JavaScript из рендерера на стороне сервера. Этот компонент может быть использован несколько раз на одной странице. Однако, как только страница загружена, я должен собрать все переменные или JSO, написанные этими несколькими компонентами на странице. Как я могу сделать это, чтобы у меня была коллекция всех переменных или JSO? Например, Если этот компонент (скажем, используется дважды на странице, то он генерирует два блока javascript на клиенте / браузере - var arr1 = new Array ['First', 'Second'] и var arr2 = new Array ['Third', 'Fourth'].

Чтобы сделать окончательный рендеринг, мне нужно объединить эти два массива.

Ответы [ 2 ]

1 голос
/ 13 октября 2008

Вам нужно будет немного более конкретно рассказать о своей проблеме, может быть, с примером страницы, но вот некоторые мысли.

Если у вас есть серверный компонент, который пишет JavaScript во время генерации страницы, я бы генерировал вызов функции каждый раз, что-то вроде:

Component_appendArray(['First', 'Second']);
...
Component_appendArray(['Third', 'Fourth']);

затем убедитесь, что ваша функция Component_appendArray() определена перед этими вызовами:

var globalArray = [];
function Component_appendArray(array)
{
     globalArray = globalArray.concat(array);
}

В конце globalArray должно содержать:

['First', 'Second', 'Third', 'Fourth']

Надеюсь, это поможет.

0 голосов
/ 13 октября 2008

Хотя я не понимаю всего сценария, позвольте мне предложить, чтобы, если вы распечатываете переменные по всему HTML, чтобы использовать их после загрузки страницы, вместо этого вы должны использовать скрытые поля ввода. Я часто вижу это, когда переменные используются для передачи значений в функцию или скрипт в нижней части страницы, но использование значений скрытых полей ввода позволяет вам вывести все ваши скрипты из областей содержимого. Это делает для более чистого решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...