【问题标题】:Add condition to angular expression? [duplicate]向角度表达式添加条件? [复制]
【发布时间】:2015-12-19 05:54:11
【问题描述】:

如果我有一个解析为字符串的角度表达式,我可以在该表达式中添加一个条件,将额外的文本附加到该字符串吗?

我有:

<span>{{groupType}}</span>

但如果groupType 解析为汽车或动物,我想在字符串的末尾添加一个 s。

我可以在表达式中添加一个条件来完成这个吗?

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    您可以在 Angular 表达式中使用三元运算符

    <span>{{groupType === 'Car' || groupType === 'Animal' ? groupType + 's' : groupType}}</span>
    

    【讨论】:

    • 太棒了,非常感谢!
    • 是的,这行得通,但你真的不应该把逻辑放在 html 中。
    • @Cerbrus 你说得对,但不涉及业务逻辑,只是将s附加到字符串中,我认为很好
    • @Cerbrus 在这种情况下,函数将很有用,正如您所展示的。我现在不会更新我的答案,因为它会和你的相似:)
    • @Cerbrus 由于 Angular 允许在视图中使用三元运算符,显然可以在视图中实现一定数量的逻辑。否则不允许在视图中使用三元运算符。
    【解决方案2】:

    是的,你可以:

    <span>{{["Car", "Animal"].indexOf(groupType) >= 0 ? groupType + 's' : groupType}}</span>
    

    我使用带有indexOf 的名称数组,因为它比“x or y or z”短一点


    不过,理想情况下,您不希望在 HTML 中使用这种逻辑。我建议把它放在你的控制器中的一个函数中:

    $scope.getGroupType = function(type){
        if(["Car", "Anumal"].indexOf(type) >= 0)
            return type + 's';
        return type;
    };
    

    然后,在您的 HTML 中:

    <span>{{getGroupType(groupType)}}</span>
    

    【讨论】:

      猜你喜欢
      • 2015-04-05
      • 2020-01-07
      • 1970-01-01
      • 2013-08-08
      • 1970-01-01
      • 2018-05-04
      • 2013-04-17
      • 1970-01-01
      • 2019-04-30
      相关资源
      最近更新 更多