我正在尝试在Codigniter + AngularJs页面中实现一些ACL内容。 我正在使用ng-route,因此我的“主视图”页面中有该行:
<div ng-view></div>
我正在使用ion-auth库来帮助实现ACL。
这是我的控制者:
public function __construct()
{
parent::__construct();
$this->load->database();
$this->load->library(['ion_auth', 'form_validation']);
$this->load->helper(['url', 'language']);
$this->lang->load('auth');
}
public function index()
{
if (!$this->ion_auth->logged_in())
{
// redirect them to the login page
redirect('/login', 'refresh');
}
else
$this->load->view('master_view');
}
这是我的ng-route使用:
var app = angular.module("myApp", ["ngRoute","bw.paging"]);
app.config(function($routeProvider) {
$routeProvider
.when("/", {
templateUrl : "/app/templates/cars_list.php",
controller: "CarsController"
})
});
当我尝试在主视图中使用ion auth的功能时,它可以正常工作:
<?php if($this->ion_auth->in_group('admin')):?>
<a class="nav-item nav-link" href="index.php#!/list">Users</a>
<?php endif;?>
但是当我在加载的模板(cars_list.php)中尝试该行时,它什么也没做。 请帮助我。如何在模板中使用$ this? TIA!
答案 0 :(得分:1)
您不能在模板内部使用$this
,而是可以这样做。
public function index()
{
if (!$this->ion_auth->logged_in())
{
// redirect them to the login page
redirect('/login', 'refresh');
}
else{
$data = [];
$data["allowed"] = $this->ion_auth->in_group('admin');
$this->load->view('master_view',$data);
}
}
可见
<?php if($allowed):?>
<a class="nav-item nav-link" href="index.php#!/list">Users</a>
<?php endif;?>