为模糊的标题道歉;我还没有弄清楚升级后到底发生了什么问题。可能是指令嵌套或模板问题?
(示例图片和下方 CodePens 的链接)
问题
我有一个生成日历的简单开源 AngularJS 库。当使用 AngularJS 1.4.9 时,它工作得很好。但是当我升级到 AngularJS 1.5.0 时,它以最奇怪的方式破坏了布局。
没有错误被抛出并且所有日历天都是在DOM中生成,然而,所有的天都输出到一个星期,所有的星期都输出到一个月(甚至不是第一周)或月份.. arghhh!)。
研究
我已阅读 migration guide for 1.4 > 1.5但没有看到任何听起来相关的东西。我还通读了 1.5 changelog以及相关的 rc 更新日志;再次没有任何关联。
当我检查在 JS 中生成的月/周/等实际数组时,一切看起来都很棒。如果我删除嵌套指令并将所有标记简单地放在一个模板中,则 DOM 输出是正确的(这不是真正的解决方案,因为这会破坏库的某些功能)。
任何想法将不胜感激。
代码和演示
使用不同版本的 AngularJS 查看完全相同的代码(查看设置 > JavaScript 以查看链接的库):
- 1.4.9(工作):https://codepen.io/benjamincharity/pen/BLYrqr?editors=1000
- 1.5.0(损坏):http://codepen.io/benjamincharity/pen/pEVVXV?editors=1000
同样,唯一的区别是所包含的 AngularJS 版本。
正在使用的指令很简单:
<!-- This should generate a 30 day calendar starting with the current day -->
<bc-calendar class="bc-calendar--days"></bc-calendar>
最佳答案
这不完全是 100% 的答案,但该特定库在很大程度上依赖于 replace
指令标志,该标志已被弃用 see here .我下载了源代码并删除了每个指令上的替换标志,然后对 css 进行了一些修改就能够实现这一点。
CSS 更改发生在 .bc-calendar--days, .bc--calendar--days
width : 50px;显示:内联柔性;
。
关于javascript - 从 1.4.9 升级到 1.5.0 时,Angular 指令嵌套异常损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39984580/