Как использовать хранилище данных для установки заголовка панели инструментов в Sencha Touch - PullRequest
0 голосов
/ 16 августа 2011

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

Но следующий код не будет работать:

menuList.on('itemtap', function(dataView, index, item, e){
     viewport.dockedItems.items[0].setTitle('{title}');
});

Он пытаетсяиспользовать переменную с именем 'title' из моего массива хранилищ данных.Это прекрасно работает для предоставления текста моим элементам Ext.List.Но приведенный выше код устанавливает заголовок панели инструментов в строку '{title}', даже не думая, что она является переменной.

Можете ли вы мне помочь?

Ответы [ 3 ]

0 голосов
/ 16 августа 2011

Две вещи. 1) Вы действительно хотите привыкнуть копаться в исходном коде ST. В этом случае, если вы посмотрите на код для «setTitle», вы увидите, что его аргумент интерпретируется как прямой HTML, а не как шаблон. Таким образом, вы не можете использовать синтаксис фигурных скобок здесь. 2) Обратите внимание, что типом аргумента «item» для обработчика событий является Element (т. Е. Представление объекта DOM в ST, а не в выбранном объекте хранилища данных. Так что это вам не поможет. Однако аргумент «index» дает у вас простой способ получить соответствующий объект из магазина. т.е.

[appname].stores.pages.getAt(index).title
0 голосов
/ 16 августа 2011

Я действительно не знаю почему, но это работает, если вы установите переменные: один для записи и один для значения внутри этой записи. Подробное объяснение есть на sencha.com-форуме

0 голосов
/ 16 августа 2011

Шаблоны использования списка, чтобы элементы в фигурных скобках оценивались ... вам нужно передать ссылку на переменную без кавычек. Вы не предоставили мне достаточно кода, чтобы сообщить, где будет эта информация. Если у вас уже есть переменная в области видимости, называемая title, в которую вы помещаете данные, тогда вы можете просто переобозначить '{и}' ... в противном случае вам нужно будет получить нужные данные из вашего магазина с помощью некоторых средств, таких как Ext .StoreMgr или [appname] .stores

...