• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > Angularjs单选改为多选的开发过程及问题解析

Angularjs单选改为多选的开发过程及问题解析

作者:JenniferGe 字体:[增加 减小] 来源:互联网 时间:2017-05-11

JenniferGe通过本文主要向大家介绍了angularjs开发指南,angularjs开发工具,angularjs开发实例,angularjs开发环境,angularjs开发手册等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

开发过程:

问题一:自己首先想到的是网上找个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> 
</div>

js:

$scope.productTypes = [ 
   {"key":"SecureSiteProEV1", "value":"product1"}, 
   {"key":"SecureSiteProEV2", "value":"product2"}, 
   {"key":"SecureSiteProEV3", "value":"product3"}, 
   {"key":"SecureSiteProEV4", "value":"product4"}, 
   {"key":"SecureSiteProEV5", "value":"product5"}]; 
</div>

css

md-input-container label:not(.md-no-float):not(.md-container-ignore), 
md-input-container .md-placeholder { 
  white-space: normal; 
} 
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Angularjs单选改为多选的开发过程及问题解析

相关文章

  • 2017-05-11bootstrap3 dialog 更强大、更灵活的模态框
  • 2017-05-11JavaScript实现向select下拉框中添加和删除元素的方法
  • 2017-05-11Bootstrap表单控件使用方法详解
  • 2017-05-11jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
  • 2017-05-11Angular之指令Directive用法详解
  • 2017-05-11详解axios在node.js中的post使用
  • 2017-09-02一个关于dom操作属性的面试题
  • 2017-05-11JSON与JS对象的区别与对比
  • 2017-05-11JS得到当前时间的方法示例
  • 2017-05-11js replace()去除代码中空格的实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
    • js 递归和定时器的实例解析
    • 简单实现js悬浮导航效果
    • js实现textarea限制输入字数
    • 在GET请求方法中,实现向现有URL的末尾添加查询字符串参数
    • js上下视差滚动简单实现代码
    • 微信小程序实现实时圆形进度条的方法示例
    • 从零开始学习Node.js系列教程一:http get和post用法分析
    • Vue.directive自定义指令的使用详解
    • 微信小程序 ecshop地址三级联动实现实例代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有