在我的管理页面中,我希望使用AngularJS来管理我的电子商务产品。
例如:admin/product将会查询admin/api/product中的API。
我还没有设置用户身份验证,因此我还不知道用户是否是管理员用户。
我只希望在管理员页面上包含angularjs管理脚本。
有没有办法仅在路由组为admin的情况下在我的视图中包含angular adminapp.js。例如:对于面向公众的页面,我不会向公众暴露adminapp.js。
我知道如果用户被验证为管理员,则可以执行此操作,但我希望能够在路由组为admin的情况下执行此操作。
甚至更多:
然而,以上示例存在一个问题,即如果我在一个深度嵌套的视图中:admin/categories/products,则我的前缀将不再是 admin。我不想使用正则表达式来检测路由前缀中的单词
例如:admin/product将会查询admin/api/product中的API。
我还没有设置用户身份验证,因此我还不知道用户是否是管理员用户。
我只希望在管理员页面上包含angularjs管理脚本。
有没有办法仅在路由组为admin的情况下在我的视图中包含angular adminapp.js。例如:对于面向公众的页面,我不会向公众暴露adminapp.js。
我知道如果用户被验证为管理员,则可以执行此操作,但我希望能够在路由组为admin的情况下执行此操作。
Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function() {
Route::group(['prefix' => 'api', 'namespace' => 'Api'], function() {
Route::resource('product', 'ProductController');
});
Route::group(['namespace' => 'Product'], function() {
Route::get('product', 'ProductController');
});
});
在templates.master.blade.php
文件中,类似以下内容:
@if($routeGroupIsAdmin)
{{ HTML::script('js/adminapp.js') }}
@endif
甚至更多:
{{ Route::getCurrentRoute()->getPrefix() == 'admin'? HTML::script('js/adminapp.js') : HTML::script('js/app.js') }}
然而,以上示例存在一个问题,即如果我在一个深度嵌套的视图中:admin/categories/products,则我的前缀将不再是 admin。我不想使用正则表达式来检测路由前缀中的单词
admin
。
'before' => 'admin'
过滤器 Filters.phpRoute::filter('admin', function() { View::share('isGroupAdmin', true); });
templates.master.php{{ isset($isGroupAdmin) ? HTML::script('js/adminapp.js') : HTML::script('js/app.js') }}
这样,当我构建认证组件时,只需将认证逻辑添加到此管理员过滤器中 - Gravy