2009-09-04 3 views
1

Для моего приложения pre-pre palm у меня есть динамически сгенерированный список (вытаскивание данных из SQLite, загрузка в модель, привязка). Это прекрасно работает, но теперь мне нужно добавить включение/выключение для каждого из динамически создаваемых элементов. Включение тумблера в шаблоне работает, но я не могу правильно назначить функцию виджета. Я пытаюсь связать виджет в сцене, но пока не повезло.Как создать кнопки переключения в динамически отображаемом списке

Значит, кто-нибудь знает какие-либо учебники WebOS (или есть пример) о том, как связать виджеты в динамическом списке?

ответ

0

Получил ответ от Палм Дэв сами:

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

1. В списке-item.html шаблона:

<div class='palm-row'> 
    <div class='palm-row-wrapper'> 
     <div x-mojo-element="ToggleButton"></div> 
     #{title} 
    </div> 
</div> 

2. В списке-assistant.js функции настройки (заметьте, я использую JQuery)

Mojo.Event.listen(jQuery("#my-list").get(0), Mojo.Event.propertyChange, this.listPropertyChangeHandler.bind(this)); 

3. В listPropertyChangeHandler

ListAssistant.prototype.listPropertyChangeHandler = function(event){ 
    var newValue = event.model.value; 
} 
0

Его не элегантный, но один из способов сделать это - использовать свойство onItemRendered помощника списков.

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

Что-то вроде этого:

onItemRendered: function(listWidget, itemModel, itemNode){ 
    var item = itemNode.select('div.mywidget').first(); 
    Mojo.Event.listen(item, Mojo.Event.tap, this.handleTap.bind(this)); 
}.bind(this) 

Есть несколько примеров того, как использовать onItemRendered в исходном коде для встроенных приложений. Например, приложение «Задачи» отменяет возможность удаления «специальных» элементов.

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

  • Нет связанных вопросов^_^