Ionic - JavaScript 列表



我们已经在前面的章节中讨论了 Ionic CSS 列表元素。本章将向您展示 JavaScript 列表。它们允许我们使用一些新功能,例如滑动拖动删除

使用列表

用于显示列表和项目的指令如下所示:ion-listion-item

<ion-list>
   <ion-item>
      Item 1 
   </ion-item>
	
   <ion-item>
      Item 2 
   </ion-item>
	
   <ion-item>
      Item 3  
   </ion-item>
</ion-list>

以上代码将生成以下屏幕:

Ionic List

删除按钮

此按钮可以使用ion-delete-button指令添加。您可以使用任何您想要的图标类。由于我们并不总是想显示删除按钮,因为用户可能会意外点击它并触发删除过程,所以我们可以将show-delete属性添加到ion-list并将其与ng-model连接。

在下面的示例中,我们将使用ion-toggle作为模型。当切换开启删除时,删除按钮将出现在我们的列表项上。

<ion-list show-delete = "showDelete1">
   <ion-item>
      <ion-delete-button class = "ion-minus-circled"></ion-delete-button>
      Item 1
   </ion-item>
	
   <ion-item>
      <ion-delete-button class = "ion-minus-circled"></ion-delete-button>
      Item 2
   </ion-item>
</ion-list>

<ion-toggle ng-model = "showDelete2">
   Show Delete 2
</ion-toggle>

以上代码将生成以下屏幕:

Ionic List Delete Button

重新排序按钮

Ionic 的重新排序按钮指令是ion-reorder-button。我们创建的元素具有on-reorder属性,每当用户拖动此元素时,它都会触发我们控制器中的函数。

<ion-list show-reorder = "true">
   <ion-item ng-repeat = "item in items">
      Item {{item.id}}
      <ion-reorder-button class = "ion-navicon" 
         on-reorder = "moveItem(item, $fromIndex, $toIndex)"></ion-reorder-button>
   </ion-item>
</ion-list>

$scope.items = [
   {id: 1},
   {id: 2},
   {id: 3},
   {id: 4}
];

$scope.moveItem = function(item, fromIndex, toIndex) {
   $scope.items.splice(fromIndex, 1);
   $scope.items.splice(toIndex, 0, item);
};

以上代码将生成以下屏幕:

Ionic List Reorder 1

当我们点击右侧的图标时,我们可以拖动元素并将其移动到列表中的其他位置。

Ionic List Reorder 2

选项按钮

选项按钮是使用ion-option-button指令创建的。这些按钮在列表项向左滑动时显示,我们可以通过将项目元素向右滑动将其再次隐藏。

在下面的示例中,您可以看到有两个隐藏的按钮。

<ion-list>
   <ion-item>
      Item with two buttons...
      <ion-option-button class = "button-positive">Button 1</ion-option-button>
      <ion-option-button class = "button-assertive">Button 2</ion-option-button>
   </ion-item>
</ion-list>

以上代码将生成以下屏幕:

Ionic List Option Hidden

当我们将项目元素向左滑动时,文本将向左移动,按钮将出现在右侧。

Ionic List Option Visible

其他功能

collection-repeat函数是AngularJS ng-repeat指令的更新版本。它只渲染屏幕上可见的元素,其余元素将在滚动时更新。当您使用大型列表时,这是一个重要的性能改进。此指令可以与item-widthitem-height属性结合使用,以进一步优化列表项。

还有一些其他有用的属性可用于处理列表中的图像。item-render-buffer函数表示在可见项目之后加载的项目数量。此值越高,预加载的项目就越多。force-refresh-images函数将在滚动时修复图像源的问题。这两个类都会对性能产生负面影响。

广告