angular学习input输入框筛选

学习angular,看到 angular-phonecat测试用例,照着教程运行了一遍,对于初学者有点不是很理解angular 帅选代码的意思,于是找教材,参考资料,明白了input筛选原来这么简单。

html部分

<!doctype html>
<html lang="en" ng-app="listModule">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
    <script src="js/angular.js"></script>
    <script src="js/controller.js"></script>
    <title>筛选</title>
</head>
<body>
<div class="container" ng-controller="listCtrl">
    <div class="panel panel-default">
        <div class="panel-heading">input筛选</div>
        <div class="panel-body">
            <div class="row">
                <!--左侧筛选-->
                <div class="col-md-3">
                    <!--按钮组筛选-->
                    <div class="btn-group btn-group-justified form-group">
                        <div class="btn-group" ng-repeat="tab in listtab" ng-click="clicktab(tab.sex)">
                            <button type="button" class="btn btn-default">{{tab.sex}}</button>
                        </div>
                    </div>
                    <!--input筛选-->
                    <div class="form-group">
                        <input type="text" class="form-control" ng-model="text">
                    </div>
                    <!--下拉列表筛选-->
                    <div class="form-group">
                        <select ng-model="orderlist" class="form-control">
                            <option value="price">价格</option>
                            <option value="sex">sex</option>
                        </select>
                    </div>
                </div>
                <!--右侧展示内容-->
                <div class="col-md-9">
                    <div class="tab thumbnail" ng-repeat="product in list | filter:text | orderBy:orderlist | filter:filtertab">
                        <h4 class="text-danger">{{product.price | currency:"¥"}}</h4>
                        <h3 class="text">{{product.name}}</h3>
                        <p class="text-info">{{product.describe}}</p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

</body>
</html>

html里边的几个重点是过滤这款

1.filter:text, text是左侧input输入内容这块,ng-model="text";angular自动的就筛选内容;

2.orderBy:orderlist,AngularJS中orderBy进行排序,详细内容参考:http://www.cnblogs.com/freshcoder/p/4966375.html,

  orderlist是左侧下拉列表,下拉列表所选择的的值,值是与右侧json里的要相同,才能进行排序

3.filter:filtertab ,自定义过滤器,筛选的内容也是两个json里共有的。

controller.js

var app = angular.module(‘listModule‘,[]);
app.controller(‘listCtrl‘,function($scope,$http){
    $scope.orderlist = ‘price‘;//下拉列表默认选中价格,默认是以价格排序的
    $http.get(‘data/list-tab.json‘).success(function(tab){//按钮组
        $scope.listtab = tab;
    });
    $http.get(‘data/list.json‘).success(function(list){//商品列表
        $scope.list = list;
    });
    // 点击导航条保存商品种类
    $scope.clicktab = function(sex){
        $scope.showsex=sex;
    };
    // 设置过滤器
    $scope.filtertab=function(product){
        // 这里相当于给全局变量赋值,product.sex ng-repeat循环出来的
        return $scope.showsex==product.sex || $scope.showsex==null;
    }
})

这里的js比较简单主要的angular都已经给封装好了,

两个json内容

[
  {"id":"001","sex":"男装"},
  {"id":"002","sex":"女装"},
  {"id":"002","sex":"童装"}
]

[
  {"price":"33.45","name":"GXG男装 冬装新品毛衣90%白鸭绒轻薄羽绒拼接针织衫毛衫", "describe":"GXG官方旗舰店","sex":"男装"},
  {"price":"34","name":"韩版秋冬时尚修身显瘦连帽小棉袄","describe":"泉山亿井旗舰店","sex":"女装"},
  {"price":"46.4","name":"一贝皇城男童小孩儿童中大童冬装","describe":"一贝皇城官方旗舰店","sex":"童装"},
  {"price":"43.45","name":"军旅式外套(MA-1)(仿皮)", "describe":"优衣库官方旗舰店","sex":"男装"},
  {"price":"45","name":"太平鸟秋冬宽松半高领插肩袖套头卫衣","describe":"太平鸟官方旗舰店","sex":"女装"},
  {"price":"53.4","name":"男童加厚冬季儿童中大童棉袄","describe":"玖玖苏荣旗舰店","sex":"童装"}
]

最后截取两张效果:

时间: 2024-09-30 07:36:30

angular学习input输入框筛选的相关文章

angular input输入框中使用filter格式化日期

最近使用了angular日期选择器,不过需要把选中的日期输出到input输入框中,如果按照默认情况,显示的是时间戳形式的时间,不符合要求,需要把格式变成特定格式,但是input上ng-model上又不能直接使用filter,因此需要一种方法把这里显示的内容格式化. 网上寻找解决方案就是写个directive,具体实例代码如下: JS angular.module('dateRange',[]).directive('dateFormat', ['$filter',function($filter

在CS代码页获取input输入框内肉----.net学习点滴

想在后台cs页面得到前台页面aspx中html控件input输入的值.通过访问input输入框的name属性值获取. 解决方法如下: 1.用Request["user"].toString();. 前台代码如下: 用户名:<input name="user" type="text"> 后台获取代码如下: string username = Request["user"].ToString(); 2.用Request

angular学习笔记(一)

入门实例: 一个购物车产品清单,可以自行改变数量,总价自动计算的小例子: 代码如下: <!DOCTYPE html> <html ng-app> <head> <title>1.1实例:购物车</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="

基于jQuery的input输入框下拉提示层(自动邮箱后缀名)

基于jQuery的input输入框下拉提示层,方便用户输入邮箱时的提示信息,需要的朋友可以参考下 效果图 // JavaScript Document (function($){ $.fn.extend({ "changeTips":function(value){ value = $.extend({ divTip:"" },value) var $this = $(this); var indexLi = 0; //点击document隐藏下拉层 $(docum

angular学习笔记(五)-阶乘计算实例(1)

<!DOCTYPE html> <html ng-app> <head> <title>2.3.2计算阶乘实例1</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="script.js"></script> </

angular学习笔记(三十)-指令(5)-link

这篇主要介绍angular指令中的link属性: link:function(scope,iEle,iAttrs,ctrl,linker){ .... } link属性值为一个函数,这个函数有五个参数:scope,iEle,iAttrs,ctrl,linker scope:指令所在的作用域,这个scope和指令定义的scope是一致的.至于指令的scope,会在讲解scope属性的时候详细解释 iEle:指令元素的jqLite封装.(也就是说iEle可以调用angular封装的简版jq的方法和属

angular学习笔记(五)-阶乘计算实例(2)

<!DOCTYPE html> <html ng-app> <head> <title>2.3.3计算阶乘实例2</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="script.js"></script> </

angular学习笔记(三十一)-$location(2)

之前已经介绍了$location服务的基本用法:angular学习笔记(三十一)-$location(1). 这篇是上一篇的进阶,介绍$location的配置,兼容各版本浏览器,等. *注意,这里介绍的是基于angular-1.3.2版本的,低版本的$location可能会有问题. hashbang模式和history api创建单页应用 首先,$location是用在单页应用里的...(废话,angular就是用在单页的)...所以,$location处理的是url改变,但是不刷新页面的情况.

微信小程序组件解读和分析:十、input输入框

input输入框组件说明: 本文介绍input 输入框的各种参数及特性. input输入框示例代码运行效果如下: 下面是WXML代码: [XML] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 <view class="content"> type:有效值:text 感觉没什么区别 <input  placeholder="type=text" type=