【问题标题】:Angular Directives and ng-repeat for Lists; Doesn't Inherit Parent ClassAngular 指令和列表的 ng-repeat;不继承父类
【发布时间】:2015-05-04 10:49:32
【问题描述】:

我正在尝试将标准列表项格式包装在 Angular 指令中,然后在各种列表类型中将其与 ng-repeat 一起使用。问题是,指令似乎失去了父类,所以列表没有呈现它应该的方式。这是一个例子:

<ul class="nav nav-pills nav-stacked affix">
  <div ng-repeat="item in items">
    <my-list-item item="item"></my-list-item>
  </div>
</ul>

渲染完全一样:

<ul class="nav navbar-nav navbar-right">
  <div ng-repeat="item in items">
    <my-list-item item="item"></my-list-item>
  </div>
</ul>

所以,这两个渲染完全一样,不是我想要的方式。如何让我的列表项指令知道其父类?

编辑:

<ul class="nav nav-pills nav-stacked affix">
  <li ng-repeat="item in items">
    <my-list-item item="item"></my-list-item>
  </li>
</ul>

my-list-item 指令看起来像这样:

<a class="myClass" href="{{item.target}}"><span ng-bind-html="item.text"></span></a>

【问题讨论】:

    标签: css angularjs angularjs-directive angularjs-ng-repeat listitem


    【解决方案1】:

    &lt;div&gt; 首先不是&lt;ul&gt; 的有效子代。真正唯一有效的孩子是&lt;li&gt;

    引导 css 也不会期望它。使用与引导程序建议的标记相匹配的标记并应用文档中使用的任何适当的类。

    至于在&lt;my-list-item&gt; 中呈现的内容,如果它也有问题,您需要显示该 html 的样子

    参考W3C <UL> Specs

    允许的内容

    零个或多个 li 元素

    【讨论】:

    • 好的,我明白你在说什么。我已经更新了一些东西,但它们仍然没有按照我期望的方式呈现。我已经用新代码和指令的内容更新了我的问题。
    • 如果没有复制问题的 html/css 演示,很难首先知道 not rendered the way I expect 的含义......或者如何解决它
    • 好的,我认为这说明了我遇到的问题:plnkr.co/edit/MSedqw6OAqbQfSmaOrzU?p=preview
    • 仍然通过保持&lt;list-item&gt; 来生成与引导 css 不匹配的标记。将 replace:true, 添加到指令中,以便 &lt;a&gt;&lt;li&gt; 的直接子代,然后检查 css 规则这适用于浏览器开发工具,以更好地理解您为什么看到您所看到的
    • replace: true 做到了...谢谢!我想我需要更好地理解指令......我知道 CSS 级别出了什么问题,我只是不知道如何让指令做我想做的事。谢谢!
    猜你喜欢
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多