很简单的需求:之前下拉框是单选,现在想改为多选。

开发过程:
问题一:自己首先想到的是网上找个example,发现貌似AngularJS有相应的js包来实现,其中最多的就是isteven-multi-select和angularjs-dropdown-multiselect等。
我下载了,但是套到自己项目里面,是在是难看的很。而且貌似这些js包耦合性很高,不是我想要的那种,所以还是打算用简单的md-select、md-option、md-checkbox
来实现我想要的效果,又不想写的太人工,所以就查angularjs的一些控件demo,最后果然发现了我想要的。
https://material.angularjs.org/1.1.3/demo/select
于是我就开始往项目里套,但是怎么套,都出不了demo上的样式,多选是能多选了,但是没有像checkbox那种正方形选择框,各种百度各种google,就是不知道什么原因。本来打算都要放弃了,但是这么好的demo,这么省事的js,不忍心放弃啊,再说放弃也找不到其他比较合适的而又不显突兀的样式。于是耐下心来一遍遍的去看setting,所有的都没问题,除了版本不一致。难道?我的第六感告诉我,或许真的是版本原因。之前用的版本是"angular-material": "1.0.0-rc2",改用最新版本"angular-material": "1.1.3",于是,效果出来了,真的是版本原因,容我默默的在卫生间哭一会儿。
问题二:样式的问题解决了,离成功不远了。想做个多选效果,因为选项实在是很多,没有多选实在是体验不好。于是就用其中的一个option来做全选,但是不知道option都有什么事件,找不到相应的属性说明文档,只有一个checked属性,但是在js里面又不知道如何判断checked还是没有checked,最后还是放弃了,最上面做了个按钮,搞定。
问题三:还有个问题,就是更新"angular-material": "1.1.3"版本之后,似乎md-input-Container label长度过长的话,就显示3Dot(...)了,而之前是可以换行显示的,感觉这个体验完全不如之前版本的体验。网上google了好久也没google出来这样修正的好处,于是果断自定义css,改回原来的样式。
涉及到的部分代码:
html:
<md-input-container flex="35" class="md-input-has-value">
<label>产品类型</label>
<md-select ng-model="params.productType" md-on-close="clearSearchTerm()" ng-change="change(params.productType)" data-md-container-class="selectHeader" multiple>
<div>
<button ng-click="pTCheckNone()" class="md-button md-ink-ripple"><i class="zmdi zmdi-undo ng-scope"></i>重置</button>
</div>
<md-select-header class="select-header">
<input ng-model="searchTerm" type="search" placeholder="Search for a product.." class="header-searchbox md-text" >
</md-select-header>
<md-optgroup label="productTypes">
<md-option value="{{item.key}}" ng-repeat="item in productTypes | filter:searchTerm">{{item.value}}</md-option>
</md-optgroup>
</md-select>
</md-input-container>
js:
$scope.productTypes = [
{"key":"SecureSiteProEV1", "value":"product1"},
{"key":"SecureSiteProEV2", "value":"product2"},
{"key":"SecureSiteProEV3", "value":"product3"},
{"key":"SecureSiteProEV4", "value":"product4"},
{"key":"SecureSiteProEV5", "value":"product5"}];
css
md-input-container label:not(.md-no-float):not(.md-container-ignore),
md-input-container .md-placeholder {
white-space: normal;
}
# angularjs
# 单选
# angularjs多选
# 利用VS Code开发你的第一个AngularJS 2应用程序
# AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
# 基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
# AngularJS开发教程之控制器之间的通信方法分析
# Ubuntu系统下Angularjs开发环境安装
# 总结AngularJS开发者最常犯的十个错误
# 利用Angularjs和Bootstrap前端开发案例实战
# AngularJS应用开发思维之依赖注入3
# angularJS开发注意事项
# 的是
# 多选
# 又不
# 找不到
# 来实现
# 我想要
# 我就
# 是在
# 都有
# 放弃了
# 有个
# 告诉我
# 都要
# 也没
# 最多
# 都没
# 网上
# 一遍
# 很高
# 去看
相关文章:
建站之家VIP精选网站模板与SEO优化教程整合指南
如何高效完成独享虚拟主机建站?
如何快速搭建高效简练网站?
,网页ppt怎么弄成自己的ppt?
宁波自助建站系统如何快速打造专业企业网站?
如何用美橙互联一键搭建多站合一网站?
如何用wdcp快速搭建高效网站?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
如何在万网自助建站平台快速创建网站?
如何通过cPanel快速搭建网站?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
如何通过VPS搭建网站快速盈利?
江苏网站制作公司有哪些,江苏书法考级官方网站?
代购小票制作网站有哪些,购物小票的简要说明?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
如何用PHP快速搭建高效网站?分步指南
如何基于云服务器快速搭建网站及云盘系统?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
如何选购建站域名与空间?自助平台全解析
Swift开发中switch语句值绑定模式
定制建站策划方案_专业建站与网站建设方案一站式指南
如何快速生成橙子建站落地页链接?
如何通过网站建站时间优化SEO与用户体验?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
建站主机数据库如何配置才能提升网站性能?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
如何快速生成ASP一键建站模板并优化安全性?
建站主机系统SEO优化与智能配置核心关键词操作指南
制作网站的软件免费下载,免费制作app哪个平台好?
如何在企业微信快速生成手机电脑官网?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
北京专业网站制作设计师招聘,北京白云观官方网站?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
非常酷的网站设计制作软件,酷培ai教育官方网站?
香港服务器租用每月最低只需15元?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
建站之星Pro快速搭建教程:模板选择与功能配置指南
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
建站之星导航如何优化提升用户体验?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
*请认真填写需求信息,我们会在24小时内与您取得联系。