3

我正在使用 Foundation 布局框架,它会自动将最后一个兄弟浮动.column到右侧,我非常感谢这是一种行为。然而,AngularJS 会自行span.ng-scope在 every 之后插入div.column,这会以某种方式导致浏览器将最后一个 span 视为最后一个兄弟.column(即使它不是)。

具体来说,Foundation 中负责此操作的 css 是:

[class*="column"] + [class*="column"]:last-child { float: right; }

据我了解,[attribute*="substring"]应该只选择匹配的兄弟姐妹,因此,对于上述内容,只选择其类属性包含column(包括columns)的元素。我认为跨度标签的class属性不包含不column应该匹配(因此被忽略:last-child)。然而,情况似乎并非如此。

无论如何,跨度导致问题:

有没有办法配置角度来停止插入这些span标签?我会不情愿地修改css选择器以某种方式忽略所有span标签;但是我最终可能需要/想要使用跨度标签。

4

2 回答 2

2

由于您表示可以将 div 移到内部,因此可以:

<ng-include src="'main.tmpl'"></ng-include>

然后在您的模板中:

<div class="row">
   <article id="sidepanels" class="four columns">
   ...
</div>

我不知道有什么方法可以防止 angular 插入 span 标签(我认为它会以这种方式跟踪范围——用于垃圾收集)。

于 2013-01-04T23:21:53.803 回答
0

您也可以尝试我的不创建范围的包含指令版本:Gist source

由于没有创建范围,AngularJS 不应该创建额外的元素来维护范围(它实际上使用数据属性来存储到范围的链接)。

于 2013-01-05T18:55:21.137 回答