从1.4.9升级到1.5.0时,Angular指令嵌套奇怪地破坏了

时间:2016-10-11 18:49:57

标签: javascript angularjs angularjs-directive

道歉的标题道歉;我还没有弄清楚升级后正在破坏什么。可能是指令或模板问题的嵌套?

(示例图片和下面的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以查看链接库):

同样,唯一的区别是包含AngularJS的版本。

正在使用的指令只是:

<!-- This should generate a 30 day calendar starting with the current day --> <bc-calendar class="bc-calendar--days"></bc-calendar>

enter image description here

1 个答案:

答案 0 :(得分:2)

这不是100%的答案,但该特定的库在很大程度上依赖于replace指令标志,该标志已被弃用this one。我下载了源代码并删除了每个指令上的replace标志,然后对css进行了一些修改就能实现这一点。 see here

css更改位于.bc-calendar--days, .bc--calendar--days width : 50px; display: inline-flex;