angularjs - AngularJS 光滑的轮播按属性过滤
问题描述
我正在使用https://github.com/devmark/angular-slick-carousel 我想添加一个搜索过滤器,因此它只会显示在其“data-test-id”属性中具有“searchStr”的幻灯片.
HTML:
<slick settings="slickConfig" >
<div ng-repeat="i in number"
data-test-id="{{i.title}}"
class="slick-item">
{{i.title}}
</div>
</slick>
JS:
$scope.slickConfig.method.slickFilter(searchStr);
我应该如何使用 slickFilter 功能?
解决方案
在这种情况下,您需要更新或重新启动 slick-carousel。所以,它会非常简单,几乎就像任何其他过滤器一样:
您的看法:
<!-- You have Your Filter -->
<input type="text" ng-model="filter" ng-change="updateNumber4()"/>
<!-- You have your SlickCarousel, it's important to include ng-if -->
<slick class="slider" settings="slickConfig4" ng-if="slickConfig4Loaded">
<!-- IMPORTANT: I'm filtering in ng-repeat by the ng-model in the input -->
<div ng-repeat="i in number4 | filter:filter" >
<div style="width:{{ i.label }}px;height:100px; background:{{i.background}}">{{i.label}}</div>
</div>
</slick>
但是,如您所见,input
有一个ng-change
和我ng-if
在slick
. 这是不同的部分。
在您的控制器中,您需要:
$scope.updateNumber4 = function () {
$scope.slickConfig4Loaded = false;
$timeout(function() {
$scope.slickConfig4Loaded = true;
});
};
另外,考虑到您必须timeout
在控制器中导入。
您可以使用我刚刚制作的这个示例:https ://plnkr.co/edit/1v3DYmfLyqvjedKz
推荐阅读
- r - 计算多词向量 R 中的字符数
- javascript - 当我尝试将后端与 React 连接时,为什么它会返回“无法读取未定义的属性“地图”?
- java - Java 中的 Google OAuth — 如何手动设置令牌数据?
- python - 无法在同一子文件夹中的另一个 python 文件中导入 python 文件
- python - 在我的 python 3 中,我不能使用 urllib.request,因为它说我没有这个子模块,所以我如何访问网站数据?
- mysql - MySQL数据库在表中添加数字或使用查询计算
- python - 如何让物体从墙上反弹?
- python-3.x - 除了我自己的电子邮件之外,Google Drive API 脚本不适用于电子邮件
- node.js - 在函数中声明但在该函数内部的另一个函数中处理后如何在node.js中返回数组?
- macos - 汇编编程我不能将 al 寄存器作为参数提供给 _printf