ng-repeat中的其他表达式

时间:2015-03-21 08:55:21

标签: javascript angularjs

<div ng-repeat="book in books">
<a href="#/{{book.title}}"> <h3 class="title">{{book.title}}</h3></a>
</div>

我使用上面的代码来获取并且它工作正常,但我也有一个搜索功能,它也会设置$scope.books。不幸的是,我无法控制api,搜索回调返回了不同的方案,意味着获得我必须导航到其他地方的书籍的标题,如book.category.item.title

所以我想做这样的事情

<a href="#/{{book.title || book.category.item.title}}">

检查book.title是否设置,否则显示另一个表达式。这是对的吗?

1 个答案:

答案 0 :(得分:1)

相反,我更喜欢使用ng-href

<a ng-href="{{getTitle()}}">link</a>

在你的控制器中,通过检查那里的逻辑返回url

angular.module("app",[])
   .controller("MainCtrl", function($scope) {
      $scope.book = {};
      $scope.book.title = null;
      $scope.book.category = {
        item : {
          title : "Rafi"
        }
      }
      $scope.getTitle = function() {
        return '#/'+ ($scope.book.title || $scope.book.category && $scope.book.category.item && $scope.book.category.item.title);
      }
    });

<强> DEMO

如果您因某些原因不想使用控制器:

 <a ng-href="{{'#/'+(book.title || book.category.item.title)}}">