Ionic 的 ng-class 在聊天功能上面的巧妙运用
很多人在问我是ionic好呢?还是react好呢? 其实我只想告诉你去看文档啊,不用用怎么知道哪个合适呢? 嘿嘿但是真的这么问的时候我也不会这么回答的,那岂不是太张狂了哈哈哈 react我确实没有用过,所以今天不多做什么评价。但是ionic我在项目中一直用着,想说的是确实很好用。 上一篇文章我们介绍了css3实现聊天界面的布局。那么今天我们就来学习一下,如何在页面进行数据交互。 文章重点:
接下来我们就围绕以上的重点来讲述: 一、如何在页面巧妙的运用ng-class的功能上一节我们已经把页面的静态布局给大家一一讲解了,那么我们今天来分享一下怎么动态展示数据,老习惯我们先看代码(PS : CSS部分请查看CSS3 仿微信聊天小气泡) HTML <!--聊天界面--> <divng-class="{true:'leftd',false:'rightd'}[isUser(c.sender)]"ng-repeat="cinchatAll"> <spanng-class="{true:'leftd_h',false:'rightd_h'}[isUser(c.sender)]"> <imgng-src="{{pic(c.sender)}}"/> </span> <divng-class="{true:'speechleft',false:'speechright'}[isUser(c.sender)]"> {{c.data}} </div> </div> Controller.js //返回给我的信息是带有发送者或者接受者的ID的 $scope.isUser=function(chatId){ if(chatId==cid){ returntrue; }else{ returnfalse; } }; 注: 在项目中我们是根据发送者的ID去做判断的isUser(c.sender) 这里的判断就是根据true/false去判断所要使用的class 第二、ng-class有哪些使用方法在angular中为我们提供了3种方案处理class:
在前面Angularjs开发一些经验总结中我们说到在angular开发中angular controller never 包含DOM元素(html/css),在controller需要一个简单的POJO(plain object javascript object),与view完全的隔离(交互angularjs框架的职责。但在某些项目中看见controller涉及DOM的元素最多的是在controller scope上定义某变量,其值为class name,形如: functionctr($scope){ $scope.test=“classname”; } <divclass=”{{test}}”></div> 这种方式完全没错,是angular提供的一种改变class的方式,但是在controller涉及了classname在我看来是乎总是那么诡异,我希望的是controller是一个干净的纯javascript意义的object。 我们继续其他两种解决方案: functionCtr($scope){ $scope.isActive=true; } <divng-class="{true:'active',false:'inactive'}[isActive]"> </div> 其结果是2中组合,isActive表达式为true,则 active,负责inactive。 2对象key/value处理主要针对复杂的class混合,其形如: 当 isSelected = true 则增加selected class, 个人推荐用2,3两种方式,不建议将class放入controller scope之上,scope需要保持纯洁行,scope上的只能是数据和行为。 今天总结到此结束,有不对的地方望大家多多指出哦。让我们一起进步。学习愉快!么么哒。。。。。。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 将列表[尝试[A]]转换为Scala中的列表[A]
- 采用list传输格式的webservice实现控制远程设备
- AngularJS – ngrepeat中的ngmodel没有更新(‘dotted’ngmo
- Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
- CentOS 7 Docker镜像和语言环境编译
- Shell变量$#,$@,$0,$1,$2
- Azure Messaging-ServiceBus Messaging消息队列技术系列1-基
- 可以传递参数到AngularJS控制器创建吗?
- 如何从scala制作一个jar文件
- Vim的合成:?/ .vimrc中需要的行是什么? (PHP错误检查)