2017-05-22 3 views
0

を訪問したときに、すべてのリンクがコードです:NGリピートハイライトだけがここ

<ul style="list-style: none;"> 
    <li ng-repeat="company in companies | orderBy:'name' | filter:companies_filter"> 
     <a href="#!/companies" ng-click="companySelected(company)"> 
      {{company.name}} 
     </a> 
    </li> 
</ul> 

コードが作業していて、何が起こるかは、私はただ一つの会社を選択すると、リスト内のすべての企業は、私のように強調表示されることをですそれらを訪問した。このコードに追加したものはありますか?

答えて

3

それはあなたがすべての企業にとって同じのhrefを持っているので、あなたはUI-ルータを使用している場合、あなたはたとえば、あなたのルートにPARAMを追加することができます:

$stateProvider.state({ 
    name: 'companies', 
    url: '/companies/:companyId' 
}); 

、あなたがこの方法を使用することができます。

<ul style="list-style: none;"> 
    <li ng-repeat="company in companies | orderBy:'name' | filter:companies_filter"> 
     <a href="#!/companies/{{company.id}}" ng-click="companySelected(company)"> 
      {{company.name}} 
     </a> 
    </li> 
</ul> 

このようにして、すべての企業は独自のhrefを持ちますが、これは起こりません。 明確でない場合は、どのルートlibを使用しているか教えてください。

0

hrefはすべてのリンクで同じです。それらを一意にするために、それぞれの最後に何かを追加する必要があります。何かのように:

<a href="#!/companies?id={{company.id}}" ng-click="companySelected(company)"> 

あなたのコードがパラメータで何もしないかどうかは関係ありません。

+1

あなたがこれを働かせようとしているのであれば、それに従ってください。レオナルドの答えは、これを「正しい方法」とすることでより正確です。あなたがそのルートに行くなら、あなたは本当にあなたがng-clickで呼んでいる機能を全く必要とすべきではありません。ルーティングでこのナビゲーションを処理する必要があります。 –

1

確かにあなたが同じhrefを設定しているが、あなたはとても似NG-クリックng-styleを使用してはいけません:FYI、私の答えはへの容易なルートである

<ul style="list-style: none;"> 
    <li ng-repeat="company in companies | orderBy:'name' | filter:companies_filter" ng-class="{ active: isActive('#!/companies/'+company.id) }"> 
     <a href="#!/companies"> 
      {{company.name}} 
     </a> 
    </li> 
</ul> 

とあなたのjsで

$scope.isActive = function (viewLocation) { 
    return viewLocation === $location.path(); 
}; 
関連する問題