2015-06-18 4 views
0

Как установить класс вкладки «active» в динамически созданный список?Вкладка «Laravel Set» активна в foreach

У меня есть ссылка 'toon alle', где я показываю все мои записи, но когда ik нажимает ссылку, я показываю другое представление. но активная вкладка остается на моей первой ссылке.

<ul class="nav nav-pills sort-source" data-sort-id="portfolio" data-option-key="filter"> 
    <li data-option-value="*" class="active"> 
     <a href="#" ng-click="getAllRequests(1)">Toon alle</a> 
    </li> 
    @foreach ($Categories as $categorie) 
     <li data-option-value=".{{$categorie->nameN}}" class=""> 
      <a href="#" ng-click="getRequests({{$categorie->id}})" 
       data-id="{{$categorie->id}}">{{$categorie->nameN}} 
      </a> 
     </li> 
    @endforeach 
</ul> 
+0

как о 'класс = "{{$ categorie-> идентификатор == $ activeCategoryId 'активный': ''}}"'? – Hkan

+0

Где вы объявляете переменную $ activeCategoryId? – Exon02

+0

Я не знаю, как вы определяете, какую категорию показывать. Вы должны объявить переменную в своем контроллере и передать ее в представление. – Hkan

ответ

0

Вы можете легко сделать это с помощью пользовательской facade или HTML macro, если вы используете laravel 4. В этом примере предполагается использование именованных маршрутов.

Вы можете также изменить route($route) с Route::getCurrentRoute()->getPath()

Для макроса в Laravel 4

/* 
|-------------------------------------------------------------------------- 
| Active state HTML Macro 
|-------------------------------------------------------------------------- 
| 
| Tests a route against the current URL for active state 
| If true, returns 'active' for class name 
| Usage: HTML::activeState('named.route') 
| 
*/ 
    HTML::macro('activeState', function ($route,$arguments=NULL,$class='active') 
    { 
      return strpos(Request::url(), route($route,$arguments)) !== false ? $class : ''; 
    }); 

Для фасада (Если вы не знаете, что такое фасад & как создать один read here

Фасадный аксессуар

use Illuminate\Support\Facades\Facade; 
class activeState extends Facade { 

    protected static function getFacadeAccessor() { return 'activeState '; } 

} 

Фасад Главный класс

namespace App\Helpers; 

class activeState { 

    public function activeState($route,$arguments=NULL,$class='active') 
    { 

    return strpos(Request::url(), route($route,$arguments)) !== false ? $class : ''; 

    } 

} 

Фасад Service ПРОВАЙДЕР

App::bind('activeState ', function() 
{ 
    return new App\Helpers\activeState ; 
}); 

Затем добавить новые файлы конфигурации Laravel поставщик/псевдоним.

Внутри вашего мнения <li class="{{activeState::activeState('route.name')}}">This is an li item</li>

Смежные вопросы