有关ngOptions 多选的小思考

随着angular的流行,大城市的一些公司在招人的时候会点名要具备angular开发的能力。分享一个ng的小坑,虽然解决了,但是还是不明就里。希望下次会注意,也请路过的大神提点。

项目中有复选框的需求select,还要多选的。大概效果如下图
就是左边可以用鼠标划拉一大片,点击添加到右边

简单看了下api,就找到ngoptions咯,于是比猫画虎,html酱紫

<select ng-model="leftSel" multiple ng-options="item as item.label for item in notSeleted track" style='width:100%' size='15'></select>

controller里的js酱紫

$scope.notSeleted=[{id: 1,label: '刘经理'},
                   {id: 5,label: '小王'},
                   {id: 2,label: '小张'}, 
                   {id: 3,label: '丽萨'},
                   {id: 4,label: 'Lucy'}]
$scope.leftSel=[];

关键问题是,划中选取的内容在$scope.leftSel中选不到。死活选不到。

苦思冥想,Google了一下午后发现调整常酱紫,就能取到选中的值。

<select ng-model="leftSel.data" multiple ng-options="item as item.label for item in notSeleted track by item.id" style='width:100%' size='15'></select>
//把leftSel写成json,取里边的data值。by the way尽量要用trackby,以避免出错和重复
$scope.notSeleted=[{id: 1,label: '刘经理'},
                   {id: 5,label: '小王'},
                   {id: 2,label: '小张'}, 
                   {id: 3,label: '丽萨'},
                   {id: 4,label: 'Lucy'}]
$scope.leftSel={'data':[]};

以下为在线链接还能调试哦 [ 请狂点这里看效果 ]

哦,shit我这个codepen在线的版本两个版本都是可以取到值的,但我也不知道为啥我项目里边只有下边那么写才能取到选中select的值。我原来以为是ng版本的原因,后来我测了测好像不是,苦恼

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编辑推荐 《精通AngularJS》指出AngularJS诞生于Google,已用于开发多款Google产品。它是一套JavaScript前端框架,用于开发当下流行的数据驱动的单页面Web应用。其核心特性是:MVC、模块化、自动双向数据绑定、语义化标签、依赖注入等。 作者简介 Pawel Kozlowski有15年以上的Web开发经验,接触过多种Web技术、语言和平台。他精通客户端和服务器端编程,并始终在寻找能提高生产率的工具和流程。Pawel是自由和开源软件的坚定支持者,他在AngularJS 社区非常活跃,为AngularJS项目贡献了大量的代码。他也对Angular UI (AngularJS的配套框架)有所贡献,并为AngularJS 提供了Twitter Bootstrap 相关的指令(directives)。不写代码时,Pawel 常在会议与活动上为AngularJS布道。 Peter Bacon Darwin已经积累了20年以上的编程经验,他在.NET发布之前,就已经用它工作了。他还对IronRuby的开发有所贡献。他曾在Avanade和IMGROUP做IT顾问。退休后,自由开发和照顾孩子占用了他大部分的时光。Peter是AngularJS社区的名人。他最近加入了Google的AngularJS团队。他还是Angular UI项目的创始成员。他曾在Devoxx UK和其他活动中发表过有关AngularJS的演讲,并开办过AngularJS的培训课程。他希望帮助企业更好地利用AngularJS。 目录 序1 第1章Angular之禅7 11邂逅AngularJS7 熟悉框架8 参与AngularJS项目8 社区8 在线学习资源9 库和扩展9 工具9 Batarang10 Plunker与jsFiddle10 IDE扩展和插件10 12AngularJS速成10 HelloWorld——AngularJS示例10 双向数据绑定12 AngularJS中的MVC模式12 鸟瞰13 深入作用域15 视图21 模块与依赖注入26 模块26 协作对象27 注册服务29 模块的生命周期33 模块依赖35 13AngularJS和其他框架38 jQuery与AngularJS39 苹果与橙子40 窥视未来41 14总结41 第2章构建与测试43 21介绍示例应用44 熟悉问题领域44 技术栈45 持久化存储46 MongoLab46 服务器端环境47 第三方JavaScript库48 BootstrapCSS48 22构建系统48 构建系统准则49 自动化所有事情49 尽早报错,清晰报错49 不同的工作流,不同的命令50 构建脚本同样是代码50 工具50 Gruntjs51 测试库与工具51 Jasmine51 Karmarunner52 23组织文件和目录52 根目录52 进入源代码目录54 AngularJS的特定文件54 轻装上路56 深入测试目录57 文件命名约定57 24AngularJS模块和文件57 一个文件,一个模块58 模块内部59 注册provider的不同语法59 声明配置和运行块的语法61 25自动化测试62 单元测试63 剖析Jasmine测试64 测试AngularJS对象65 测试服务65 测试控制器67 Mock对象和异步代码测试68 端对端测试70 日常工作流71 Karmarunner的提示与技巧72 执行测试子集73 调试73 26小结74 第3章与后端服务器通信75 31使用$http进行XHR和JSONP请求75 熟悉数据模型和MongoLabURLs76 $httpAPI快速导览76 配置对象说明77 转换请求数据78 处理HTTP响应79 转换响应数据79 处理同源政策约束79 利用JSONP克服同源政策约束80 JSONP的限制81 利用CORS克服同源政策约束81 服务器端代理83 32promiseAPI与$q84 工作中的promise和$q服务85 学习$q服务的基础知识85 promise是第一类JavaScript对象87 聚合回调88 注册回调和承诺的生命周期88 异步动作的链式调用89 关于$q的其他91 AngularJS中的$q集成93 33promiseAPI与$http94 34与RESTful端点通信95 $resource服务95 构造级与实例级方法97 $resource创建异步方法100 $resource服务的限制101 使用$http自定

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值