Laravel Set选项卡在foreach中处于活动状态

时间:2015-06-18 18:22:50

标签: css angularjs laravel

如何设置标签页类'有效'在一个动态创建列表?

我有一个链接' toon alle'我显示所有记录,但当我点击链接时,我显示不同的视图。但是活动标签仍保留在我的第一个链接上。

vars <- c("X", "Y", "Z")
outlist <- list()
for (a in vars) {
  levels <- as.numeric(nlevels(as.factor(paste("XYZ_df$",a, sep=""))))
  out <- c(a, levels)
  outlist <- c(outlist, list(out))
}

final <- do.call("rbind", outlist)

1 个答案:

答案 0 :(得分:0)

如果您使用facade,则可以使用自定义HTML macrolaravel 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

Facade Accessor

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

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

}

Facade Main Class

namespace App\Helpers;

class activeState {

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

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

    }

}

门面服务提供商

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

然后添加新的提供者/别名laravel配置文件。

在您的观点中 <li class="{{activeState::activeState('route.name')}}">This is an li item</li>