如何使用angular在html中应用if else

时间:2014-06-06 14:25:23

标签: javascript angularjs

我的代码

<span data-ng-repeat="s in d.sInfo track by $index" title="{{ s.sFirstName }} {{ s.sLastname }}">

<strong>{{ s.sFirstName }} {{ s.sLastname }}</strong> ({{ s.permission }})<br>

</span>

我想要的是,如果登录用户和共享用户相同,那么我将显示&#34;你&#34;

我正在尝试这样的事情,

<strong>{{ s.sFirstName }} {{ s.sLastname }} || s.name == s.FirstName s.Lastname |"YOU"</strong> ({{ s.permission }})

我可以在控制器中做一个循环。但是有没有办法在视图中实现这个

5 个答案:

答案 0 :(得分:2)

尝试使用ng-if指令

<strong ng-if="!yourConditionHere">{{ s.sFirstName }} {{ s.sLastname }}</strong>
<strong ng-if="yourConditionHere">YOU</strong>

yourConditionHere替换为您的条件。

答案 1 :(得分:1)

它看起来不太好(在这种情况下),但它可能在其他情况下有用(表达式更紧凑):你可以使用三元运算符(cond) ? expr : expr

<strong>{{
    ((u.firstname===user.firstname)&&(u.lastname===user.lastname))?
            'YOU':
            u.firstname+' '+u.lastname}}
</strong>

另请参阅此 short demo


注意

提到的其他方法(例如使用ngShowngIf等)是可行的解决方案,但它们涉及创建/销毁/操纵其他DOM元素,如果这些元素可能对性能产生显着影响, users列表变大了。

顺便说一句,您也可以使用ngSwitch到同一端。

答案 2 :(得分:1)

您可以使用ng-ifng-showng-hide指令或scope功能

使用ng-if指令&#39;

  <strong ng-if="s.FirstName"> {{ s.sFirstName }} {{ s.sLastname }} </strong>
  <strong ng-if="!s.FirstName"> You </strong>

使用ng-show指令&#39;

  <strong ng-show="s.FirstName"> {{ s.sFirstName }} {{ s.sLastname }} </strong>
  <strong ng-show="!s.FirstName"> You </strong>

使用ng-hide指令&#39;

  <strong ng-hide="!s.FirstName"> {{ s.sFirstName }} {{ s.sLastname }} </strong>
  <strong ng-hide="s.FirstName"> You </strong>

使用范围功能

在您的情况下,您还可以使用scope函数获取名称

  <strong> {{getName(s)}} </strong>


  $scope.getName = function (s) {
     if (s.FirstName) return s.FirstName + ' ' + s.LastName;
     return 'You';
  }

答案 3 :(得分:1)

ng-if工作得很好。

您还可以设置一个返回用户显示名称的过滤器,以避免在您的标记中添加逻辑

我正在设置一个jsfiddle来向你展示一个例子。

编辑:

你去了

http://jsfiddle.net/jN3Pt/1

angular.filter('userDisplayName', function(loggedInUser) {
  return function(user) {
    if ( loggedInUser.firstName === user.firstName ) return "YOU";
    return user.firstName
  };
});

答案 4 :(得分:0)

也许使用ng-showng-hide

<strong ng-show="truthy_condition"></strong>