Элемент списка пользовательского интерфейса Onsen с расширяемой функциональностью

Есть ли функция или метод для реализации элемента списка, который при нажатии расширяется?


person petko    schedule 29.04.2015    source источник


Ответы (1)


Не уверен, что вы уже нашли решение.

Сегодня я искал что-то подобное, но смог составить расширяемый список, просто используя angular ng-show и область видимости.

Я не уверен, используете ли вы Angular, но я все равно сделал для вас пример.

Вы привязываете ng-show к переменной в области (в моем примере я присвоил JSON переменной области, а ng-show привязан к «расширению»):

listScope.items = [{heading:'heading for item 1',details:'some details about this item', expand: false}, 
{heading:'heading for item 2',details:'some other details about this item',expand: false},
{heading:'heading for item 3',details:'im getting over typing out details for items now',expand: false];

Затем в моем html у меня есть ng-repeat, перебирающий элементы:

<ons-list ng-repeat='item in listScope.items'>
<ons-list-item ng-click="listScope.toggleExpandList(item)">
  <h3>{{item.heading}}</h3>
  <div ng-show="item.expand">
    {{item.details}}
  </div>
</ons-list-item>
</ons-list>

У меня есть функция в области под названием toggleExpandList(item), которая переключает значения расширения для этого конкретного элемента, который был нажат:

listScope.toggleExpandList = function(item){
item.expand = !item.expand; //toggle between true and false
}

Затем магия ng-show обрабатывает div.

См. полный пример: http://codepen.io/mloughton/pen/jbWYpK?editors=101

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

person Matt    schedule 15.09.2015