php - $this 对象在加载的模板中,带有角度
问题描述
我正在尝试在我的 Codigniter+AngularJs 页面中实现一些 ACL 内容。我正在使用 ng-route,所以我的 Master-View 页面中有该行:
<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?蒂亚!
解决方案
您不能使用$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;?>
推荐阅读
- ios - 如何从 TabBarController 打开特定的 ViewController
- php - 为单个页面禁用 nginx 缓存会给出 404
- java - Java Robot 不能输入这个句子。为什么?
- javascript - 使用 css 位置更改元素的位置:绝对
- c - 从 c 文件写入 h 文件,然后在 C 中写入另一个 h 文件
- python - 如何删除“!” 除了最后一个句子?
- python - 如何将循环的值传递给函数?
- python - 将 noughts and crosss 游戏转换为 4 x 4 网格
- android - java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.lang.String okhttp3.ResponseBody.string()”
- python - 4阶张量对称部分的Sympy计算