前言
本周使用 ng-zorro 做了项目的原型, 对它也有了一定的了解, 总的来说不难, 可以用强化版 boostrap 来理解它, 由于黄庭祥初始化工作做得很好, 在写的过程遇到的问题不是很麻烦, 感谢祥哥.
问题一, button 不起作用
问题描述: button 按钮按下无响应, 如下图:
图片描述
代码如下:
解决思路:
首先删除 button 中所有的样式, 保留最基本的 html, 发现依然无响应, 说明问题不在 button 身上
排查栅格布局, 发现 table 标签被我放在了 button 同一行
新建了一个 row,col 放置 table, 问题解决
总结: 看来 ng-zorro 的栅格要比 bootstrp 严格, 不允许随便嵌套内容
问题二, routerLink 不起作用
问题描述: 在 button 中使用 routerLink 无法进行页面跳转
代码如下
<button nz-button routerLink="/main/grade/add"><i nz-icon type="plus"></i > 增加 </button>
解决思路:
打开控制台, 点击 button, 发现无报错信息
将跳转方式改成 a 标签的 herf, 发现可以跳转, 说明 url 定义无误
询问黄庭祥, 检查, 发现我没有在父组件中写
<router-outlet></router-outlet>
缺少路由出口, 将其添加, 问题解决
搜索栏 button 不对齐
问题描述: 在使用官方文档的一个搜索框时, 样式与官方文档不一致
官方的样式:
复制过来以后的样式:
可以看到 button 没有附着在 input 上
解决思路:
打开检查, 寻找该控件的 CSS 样式
发现去除该处样式, button 的位置恢复正常
原因: 该样式是我自己添加的, 为了能让多个 button 间有空隙, 但却覆盖了搜索框 button 的样式, 最后去除该样式, 用 来实现 button 间的空隙
问题四, 左侧导航栏无法向下滚动
问题描述: 当左侧导航栏内容超出页面时, 无法滚动下滑, 如下图:
解决思路:
查看官方文档的示例代码, 对比参考, 看不出异常
谷歌搜索 "ng-zorro submenu overflowed", 结果太少
将我们的导航栏的代码全部注释, 换成官方的示例代码, 发现问题依然存在, 说明我们侧导航栏的样式写得有问题
打开检查, 排查 CSS 样式, 发现是 position fix 惹的祸, 将其去除后, 导航可以滚动
总结
本周写原型的工作并不复杂, 主要是在看文档理解需求上遇到一些问题, 经常返工重做, 另外, 感觉 ng-zorro 的官方文档写得不是很全, 在写一些功能时经常需要猜, 而且一旦改动样式就会出现一些不可预料的错误.
来源: https://segmentfault.com/a/1190000017214046