需求分析:

这次的任务主要是做右侧栏的Sort板块,主要的的需求可以分为以下几个小点:
1. 点击Sort右边的+号来展开面板
2. 点击面板中的Name这样的链接后,主框中会进行数据排序后再展示。

技术难点分析:

  1. 利用angular ui来实现Sort面板的折叠效果,需要用到ui-collapse功能。可以通过 https://angular-ui.github.io/bootstrap 页面查看其使用方法。
  2. 使用MongoTemplate结合Query和Sort类实现排序功能。

实现过程:

  • 第一步:实现折叠效果的过程还是比较顺利的,主要的原理就是给一个div添加uib-collapse属性,通过给uib-collapse属性赋值true和false来实现折叠效果。但是,我在实现的过程中还是遇到了一个小问题,我给uib-collapse赋值后,却不能实现折叠效果,原来这个div中还有一个class属性,这个class属性影响了折叠效果的实现,将其去掉就好。
  • 第二步:实现排序功能,也比较简单没什么好说的。主要代码如下:
Sort sort = new Sort(Sort.Direction.ASC,type);
Query query = new Query().with(sort);
return mongoTemplate.find(query,SaleInfo.class);
上面的功能基本上就算完成了,但是在分页的时候也遇到了一点小麻烦。就是到最后一页了,还能在翻一页。原来这是js中除法和java中的除法不同导致的。js是弱类型,并不像java中两个整数相除后,会取整。js会变为浮点数,因此这就导致最后一页后还能继续翻一页的原因。
                                    Expander控件有一个箭头按钮。单击箭头时,Expander中的子元素将显示或隐藏。箭头“展开”控件,使其子控件可见。
接下来,我们可以在扩展器中添加元素——这些元素将被扩展器箭头隐藏或显示。在这里,我向扩展器添加了一个 ImageRadioButton 按钮。
注意我修改了 Expander 元素的“Header”属性。单击此处的扩展器会显示说明。
IsExpanded我将 IsExpanded 属性修改为 false。这意味着当程序启动时,描述是不可见的。
TextBlock在 TextBl
参数设置:
1) collapsed(): 元素完成折叠后的可选操作
2) collapsing(): 元素折叠前的可选操作。如果表达式返回一个promise,直到promise resolves动画才会开始。如果promise被rejected了,那么折叠就取消了。
3) expanded(): 元素完成展开后的可...
                                    几天没有更新博客了,最近有点忙,没时间写博客,今天偷下懒,写写博客。废话也不多说,说正题,这个折叠面板组件的实现使用了transition过渡动画和css3的变量,使用原生的JS实现逻辑,用到部分ES6的语法,现在本人也还没搞得太透彻,理解明白了,会写一些关于ES7及其更新的语法的博客。这是效果图:这个控件比较简单,我就直接上代码了,不明白的朋友可以在评论里留言,我会改进的;或者是有大神指点我一二...
                                    关于Bootstrap 折叠(Collapse)插件的基础使用见:http://www.runoob.com/bootstrap/bootstrap-collapse-plugin.html
1、二级菜单中任意一个选中,则一级菜单选中;未选中二级菜单,仅一级菜单的点击不算选中;
2、页面通过跳转进入相应的路径,则对应的一级、二级菜单也要实现选中状态;
实现方案:
1.监听$loc...
直接解决问题,可翻至最后,想进行分析调试,可看中间过程。
翻看源码,ui-bootstrap的源码最上就是uibCollapse的源码(我是用的版本是1.0,与之前的0.x版本源码有很大出入)
在源码中,坚挺了uibCollapse的值,当值发生变化,则会分别调用expand()或...
界面样式选用了Materail DesginUI ,十分好用,外观漂亮,开发常规需求,足够使用了。
Xmal中的布局,其中有一列"menuLeft" 双向绑定了ViewModel里的MenuWidth属性, GridSplitter左右拖拽时动态改变了MenuWidth属性值;
<Grid Grid.Row="2">
collapse.component.html
没什么说的直接上代码。
结构很简单,分成头部和面板内容两个部分,使用<ng-content>把面板内容投射到组件内部,expanded变量控制组件的展开/收缩状态。
点击头部的时候切换expanded的值,显示不同的箭头图标,切换class
<div class="collapse-wrapper" [class.collapsed]="!ex