AngularJs页面筛选标签小功能


Posted in Javascript onAugust 01, 2016

AngularJS 简介

AngularJS 是一个 JavaScript 框架。它可通过 <script> 标签添加到 HTML 页面。

AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML。

AngularJS 是一个 JavaScript 框架

AngularJS 是一个 JavaScript 框架。它是一个以 JavaScript 编写的库。

AngularJS 是以一个 JavaScript 文件形式发布的,可通过 script 标签添加到网页中:

<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>

下面都是为本文介绍angularjs页面筛选标签功能做铺垫的,重点内容请看下面介绍:

页面html:

<div class="bar bar-calm bar-header">
<div class="title">新闻分类</div>
<button class="button button-balanced cleanbtn" ng-click="clean()">清空</button>
</div>
<ion-content class="content" scroll="false">
<ul class="filter-item">
<li>
<p>国家地区:</p>
<ul>
<li ng-repeat="RegionsName in category.Regions" ng-click="onClick(RegionsName.name,RegionsName.checked)">
<input type="checkbox" value="RegionsName.name" ng-checked="RegionsName.checked"/>
<span>{{RegionsName.cn}}</span>
</li>
</ul>
</li>
<li>
<p>资本:</p>
<ul>
<li ng-repeat="CapitalsName in category.Capitals" ng-click="onClick(CapitalsName.name,CapitalsName.checked)">
<input type="checkbox" value="CapitalsName.name" ng-checked="CapitalsName.checked"/>
<span>{{CapitalsName.cn}}</span>
</li>
</ul>
</li>
<li>
<p>领域:</p>
<ul>
<li ng-repeat="ScopesName in category.Scopes" ng-click="onClick(ScopesName.name,ScopesName.checked)">
<input type="checkbox" value="ScopesName.name" ng-checked="ScopesName.checked"/>
<span>{{ScopesName.cn}}</span>
</li>
</ul>
</li>
<li>
<p>经济资料:</p>
<ul>
<li ng-repeat="EconomicData in category.EconomicData" ng-click="onClick(EconomicData.name,EconomicData.checked)">
<input type="checkbox" value="EconomicData.name" ng-checked="EconomicData.checked"/>
<span>{{EconomicData.cn}}</span>
</li>
</ul>
</li>
<li>
<p>中央银行数据:</p>
<ul>
<li ng-repeat="CentralBank in category.CentralBank" ng-click="onClick(CentralBank.name,CentralBank.checked)">
<input type="checkbox" value="CentralBank.name" ng-checked="CentralBank.checked"/>
<span>{{CentralBank.cn}}</span>
</li>
</ul>
</li>
</ul>
<button class="button button-calm confirmbtn" ng-click="infosRef()">确认</button>

页面构建:

总共分为5个大项,通过ng-repeat生成每个大项下的小分类标签。

需求分析:用户点击每一个筛选标签,将其所选的标签名称加入一个数组中,并将该数组发送到后台供后台程序员筛选。

js代码:

//新闻筛选数据分类(模拟数据)
$scope.category={
Regions:[{name:"Regions_China",cn:"中国",checked:false},{name:"Regions_UnitedStates",cn:"美国",checked:false},{name:"Regions_UnitedKingdom",cn:"英国",checked:false},{name:"Regions_Eurozone",cn:"欧洲",checked:false},{name:"Regions_Japan",cn:"日本",checked:false},{name:"Regions_Canada",cn:"加拿大",checked:false},{name:"Regions_Australia",cn:"澳大利亚",checked:false},{name:"Regions_Switzerland",cn:"瑞士",checked:false},{name:"Regions_Others",cn:"其他",checked:false}],
Capitals:[{name:"Capitals_ForeignExchange",cn:"外汇",checked:false},{name:"Capitals_Stocks",cn:"公债",checked:false},{name:"Capitals_Commodities",cn:"商品",checked:false},{name:"Capitals_BondsBonds",cn:"品牌",checked:false}],
Scopes:[{name:"Scopes_Macroscopic",cn:"整体",checked:false},{name:"Scopes_Industrial",cn:"工业",checked:false},{name:"Scopes_Company",cn:"公司",checked:false}],
EconomicData:[{name:"EconomicData_Yes",cn:"经济资料",checked:false}],
CentralBank:[{name:"CentralBank_Yes",cn:"中央银行数据",checked:false}]
};
//遍历数据查找传入name下同名的对象(用来找出用户点击的那个在模拟数据中的对象位置)
var EachList=(name)=>{
let category=$scope.category;
for( var k in category){
for(var j in category[k]){
if(category[k][j].name==name){
var sameName=category[k][j];
sameName.checked=true;
return sameName
}
}
}
};
//该方法主要是在页面一开始会接收一个数组给Item,通过遍历这个数组和模拟数据来勾选一开始就为选中状态的标签
let init=()=>{
let Item=appSettings.filterInfosCategories;
for(var i=0;i<Item.length;i++){
var sameName=EachList(Item[i]);
//因为整个方法会执行两遍,暂未找出原因,所以加入是否重复的判断
if($scope.categories.indexOf(sameName.name)<0){
$scope.categories.push(sameName.name);
}
}
};
init();
//筛选分类数组(用户点击标签后,传入点击的标签名称和是否在选中状态,如果在就将要传出数组中的同名标签名称移除,如果没选中就加入 这个要传出的数组中)
$scope.onClick=(filterItem,check)=>{
var sameName=EachList(filterItem);
if(!check){
sameName.checked=true;
$scope.categories.push(filterItem);
}else{
sameName.checked=false;
for(var i=0;i<$scope.categories.length;i++){
if($scope.categories[i]===filterItem){
$scope.categories.splice(i,1);
}
}
}
};
//确认按钮
$scope.infosRef = () => {
$scope.onCategoryChange();
$scope.modal.hide();
};
//清空
$scope.clean=() => {
let che=$("input:checked");
//这里不能通过赋值为[]来清除,外面已经被复制引用。
$scope.categories.length=0;
che.each(function(k,filterInput){
filterInput.checked=false;
});
$scope.infosRef();
}
}

以上所述是小编给大家介绍的AngularJs页面筛选标签小功能 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS 常用校验函数
Mar 26 Javascript
jquery ajax abort()的使用方法
Oct 28 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
Jul 08 Javascript
javascript生成随机颜色示例代码
May 05 Javascript
jQuery Ajax()方法使用指南
Nov 19 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
Sep 18 Javascript
jQuery动态移除与增加onclick属性的方法详解
Jun 07 jQuery
css配合JavaScript实现tab标签切换效果
Oct 11 Javascript
Emberjs 通过 axios 下载文件的方法
Sep 03 Javascript
解决layer 动态加载select 失效的问题
Sep 18 Javascript
微信小程序 自定义弹窗实现过程(附代码)
Dec 05 Javascript
vue中jsonp插件的使用方法示例
Sep 10 Javascript
Bootstrap Table使用方法详解
Aug 01 #Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
Aug 01 #Javascript
Angular 页面跳转时传参问题
Aug 01 #Javascript
AngularJS基础 ng-copy 指令实例代码
Aug 01 #Javascript
1秒50万字!js实现关键词匹配
Aug 01 #Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
Aug 01 #Javascript
JS实现数字格式千分位相互转换方法
Aug 01 #Javascript
You might like
基于PHP开发中的安全防范知识详解
2013/06/06 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
javascript parseInt 函数分析(转)
2009/03/21 Javascript
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
Jquery中Event对象属性小结
2015/02/27 Javascript
jquery拖拽排序简单实现方法(效果增强版)
2016/02/16 Javascript
浅谈mint-ui 填坑之路
2017/11/06 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
python用来获得图片exif信息的库实例分析
2015/03/16 Python
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
Python之str操作方法(详解)
2017/06/19 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
2019/04/15 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
Django 框架模型操作入门教程
2019/11/05 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
2020/04/29 Python
RIP版本1跟版本2的区别
2013/12/30 面试题
数控技术专业毕业自荐书范文
2014/02/05 职场文书
购房协议书范本
2014/04/11 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
宣传活动总结范文
2014/07/01 职场文书
2015年采购员工作总结
2015/04/27 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
车辆挂靠协议书
2016/03/23 职场文书
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android