ng-if ... else - 更易阅读的版本

时间:2015-11-25 10:51:56

标签: angularjs

在我的网站中,我使用的代码如下:

span(class="item-org-panel-name", ng-repeat="org in organizationPath")
    a(href="", ng-if="! $last") {{ org.Name }}
    span(ng-if="$last") {{ org.Name }}

对于收集的所有元素,我需要显示link,我想显示span而不是最后一个元素。

我不喜欢我的代码,因为它不明显是可见的

2 个答案:

答案 0 :(得分:1)

您可以使用ng-switchng-switch-when

span(class="item-org-panel-name", ng-repeat="org in organizationPath", ng-switch="$last")
    a(href="", ng-switch-when="true") {{ org.Name }}
    span(ng-switch-default) {{ org.Name }}

ngSwitch

答案 1 :(得分:0)

你可以尝试这种方法,使用指令:

app.directive('whatElementToUse', function($compile) {
  return {
    restrict: 'A',
    scope: {
      name: '=',
      showAsSpan: '='
    },
    link: function(scope, elm, attr) {
      var tamplate = '';
      template = scope.showAsSpan ? '<span>{{name}}</span>' : '<a href="">{{name}}</a>';
      elm.html(template);
      $compile(elm.contents())(scope);
    }
  }
})

HTML:

<div ng-repeat="org in main.data" what-element-to-use name="org.name" show-as-span="$last"></div> 

plnkr