AngularJS:如何使用ng-repeat

时间:2016-10-22 20:11:37

标签: javascript angularjs ng-repeat

在我的标记中,我使用ng-repeat为每个li元素添加文本以及我想添加一个类(除了'fa'类)。到目前为止我正在这样做:

<ul class='social-icons' ng-repeat="social in myCtrl.socialArr">
        <li><i class="fa" ng-class={{social.iconClass}}></i><label>{{social.label}}</label></li>
</ul>

..但它不起作用

在我的控制器中我有:

self.socialArr = [
    {
        label: 'Facebook',
        url: 'facebook.com/',
        iconClass: 'fa-facebook'
    },{
        label: 'Twitter',
        url: 'twitter.com/',
        iconClass: 'fa-twitter'
    }...

4 个答案:

答案 0 :(得分:2)

试试这个

<ul class='social-icons'>
  <li ng-repeat="social in myCtrl.socialArr">
    <i class="fa" ng-class="social.iconClass"></i>
    <label>{{social.label}}</label>
  </li>
</ul>

答案 1 :(得分:1)

如果你没有conditional逻辑,你基本上可以使用传统的class本身,这会提高性能,因为ng-class指令会不必要地触发digest周期在你的情况下根本不需要它。

<ul class='social-icons' ng-repeat="social in myCtrl.socialArr">
<li>
   <i class="fa" class={{social.iconClass}}></i>
      <label>{{social.label}}</label>
</li>
</ul>

答案 2 :(得分:1)

在这里,您将{{expression}}传递给string。但ng-class期待expression [ng-class="expression"]。

您可以使用以下任何一项:

  1. 使用ng-class指令。

    一个。 ng-class="expression"

    class="ng-class: expression;"

  2. Interpolation [{{expression}}]

    class="{{expression}}"

  3. 注意:::适用于one time binding doc link

答案 3 :(得分:0)

<i class="fa {{::social.iconClass}}">
这是最高效的方式,因为没有创建观察者。