2017-12-04 8 views
0

私は角度で改ページを構築していますへの角度変数を渡し、ここに私のディレクティブです:ディレクティブ

app.directive('postsGenreLink', function() { 
    return { 
     restrict: 'EA', 
     templateUrl: myLocalized.partials + 'posts-genre-link.html', 
     controller: ['$scope', '$element', '$routeParams', function($scope, $element, $routeParams) { 
      var currentGenrePage = (!$routeParams.page) ? 1 : parseInt($routeParams.page), 
       linkPrefix = (!$routeParams.slug) ? 'page/' : 'genre/' + $routeParams.slug + '/page/'; 

      $scope.postsGenreLink = { 
       prevLink: linkPrefix + (currentGenrePage - 1), 
       hopLink: linkPrefix + (currentGenrePage), 
       nextLink: linkPrefix + (currentGenrePage + 1), 
       sep: (!$element.attr('sep')) ? '|' : $element.attr('sep'), 
       prevLabel: (!$element.attr('prev-label')) ? 'Previous Page' : $element.attr('prev-label'), 
       nextLabel: (!$element.attr('next-label')) ? 'Next Page' : $element.attr('next-label'), 
       hopLabel: (!$element.attr('Jump')) ? 'Jump' : $element.attr('Jump') 
      }; 
     }] 
    }; 
}); 

と、ここで私が表示したい記事ジャンル-link.htmlです:

<nav aria-label="..."> 
    <ul class="pagination pt-3"> 
    <li class="page-item" ng-class="{'disabled' : currentGenrePage == 1}"> 
     <a class="page-link" href="{{postsGenreLink.prevLink}}">Previous</a> 
    </li> 
    <li ng-repeat="i in [].constructor(totalPages) track by $index" class="page-item" ng-class="{'active' : currentGenrePage == $index + 1}"><a class="page-link" href="{{postsGenreLink.hopLink}}">{{$index + 1}}</a></li> 

    <li class="page-item" ng-class="{'disabled' : currentGenrePage >= totalPages}"> 
     <a class="page-link" href="{{postsGenreLink.nextLink}}">Next</a> 
    </li> 
    </ul> 
</nav> 

ng-repeatのhref以外は素晴らしいです。私はhopLinkがlinkPrefix$index + 1の値であることを望みます。どうすればこれを達成できますか?

答えて

0

hopLinkhopLink: linkPrefix,に変更し、hrefに変更しました:href="{{postsGenreLink.hopLink}}{{$index + 1}}" これは、ng-clickでコントローラに$indexの値を渡すよりも簡単でした。

+1

あなたはたぶん1つのウォッチャー/バインディングを別の+と組み合わせてバインディング式内で連結することができます(おそらく括弧内に$ index + 1を入れる必要があります) – shaunhusain

+0

これは '{{postsGenreLink.hopLink +($ index + 1)}} '?パフォーマンス面で何か違うのですか? – GoingSolo

+1

はい、1つの時計関数の代わりに2つの式を評価するのは大変ですが、これはngrepeatにn要素を掛けて、時間の経過とともに登録されたウォッチャーを監視するために$ watchers chrome拡張をチェックアウトすることができます(拡張再起動ブラウザをインストールした後、Chrome開発者ツール(f12)でコンソールとネットワーク要求の横にチェックを入れてください。 – shaunhusain