2015-10-11 2 views
0

Мне нужно передать данные между представлениями в моем приложении клиент-сервер. Для простого строкового значения я могу поместить их как атрибуты в целевой элемент и прочитать значение, когда на нем запускается событие select. Оттуда я могу легко передать это строковое значение на следующий документ.Как передать данные между представлениями tvml?

Но проблема связана с гораздо более сложными данными, находящимися в формате JSON. Я попытался сделать JSON.stringify(myData) и поместив это значение в атрибут. Но компилятор не любит { в этом значении атрибута.

Возможно, я мог бы попробовать экранировать все символы, с которыми сталкиваются компиляторы. Но я не думаю, что это хорошая идея.

Есть ли способ реализации jQuery.data() в TVML и TVJS? Или есть ли другой способ, позволяющий передавать данные между представлениями?

+0

Затруднились ответить, не видя своей архитектуры. В моем приложении у меня есть кнопка, которая должна воспроизводить все видео в категории. Эта кнопка просто содержит индекс категории в качестве атрибута. Я передаю значение этого атрибута функции в контроллере для этого представления, которая возвращает правильный объект категории. – mcabe

+0

У меня есть служба передачи данных. Я использую эту службу для сохранения и получения данных. При создании представления я генерирую руководство и сохраняю соответствующие данные с этим руководством для службы данных. И передайте указатель в Presenter как атрибут, чтобы он извлекал данные из службы и передавал ее в вызываемое представление. Решает теперь мою проблему. –

ответ

0

EDIT: И я вижу в комментарии выше вы пришли к аналогичному выводу.

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

Ex:

var globalData; 

function onSelect(e){ 
    var id=e.target.getAttribute("id"); 
    var specificData=globalData[id]; 
} 
1

Вы можете передать данные в качестве параметров URL. Затем в новом представлении получите их с помощью Javascript.

Смежные вопросы