如何处理数组(或手动处理ng-repeat)?

时间:2019-02-05 19:00:04

标签: angularjs html5

使用:AngularJS v1.3.15

免责声明:我对angularjs几乎一无所知。但是我被迫使用它,因为它正在我使用的框架中使用。

我想修改一些类似如下的html / angularjs:

    <ul>
        <li ng-repeat="provider in model.externalProviders">
            <a class="pure-button" href="{{provider.href}}">{{provider.text}}</a>
        </li>
    </ul>

我可以看到这里发生了什么……ng-repeat导致model.externalProviders集合/数组元素的迭代。它工作正常,但是我无法控制内容/样式(取决于提供者)中各个<a>元素的样式。我想根据类型更改<a>元素的内容/外观。

模型的相关部分如下:

"externalProviders": [
  {
    "type": "Google",
    "text": "Sign-in with Google",
    "href": "https://localhost:44302/external?provider=Google&amp;signin=04e029cf1018403f1757b097fbfb1ecb"
  }
],

所以我认为也许可以通过类型从外部提供者“选择”或“选择” ...如果该类型存在,则呈现适当的标记,例如:

    <ul>
        <!-- if model.externalProviders has item with type=="Google"... -->
        <li>
            <a class="pure-button button.google" href="<i class="fab fa-google"></i>{{provider.href}}">{{provider.text}}</a>
        </li>
        <!-- if model.externalProviders has item with type=="Facebook"... -->
        <li>
            <a class="pure-button button.facebook" href="<i class="fab fa-facebook"></i>{{provider.href}}">{{provider.text}}</a>
        </li>
    </ul>

不确定正确的搜索词是什么,因此我找不到任何可以解决问题的信息。 AngularJS可能会发生这种情况吗?如果是这样,我该怎么做?

1 个答案:

答案 0 :(得分:0)

正如@Major Sam所说, @override Widget build(BuildContext context) { return Container( child: CustomRoundedBars.withSampleData(), ); } 可能适用于不太简单的情况,但我什至不需要走那么远。幸运的是,我可以控制type属性和css,因此可以使我的type和css选择器与该图标的字体真棒图标类选择器匹配。这有效:

ngClass

缺点:不允许您更改实际的标记(例如,如果真棒字体没有该提供者的图标,则不包括该图标)。