首页 > 解决方案 > $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?蒂亚!

标签: phphtmlangularjscodeigniter

解决方案


您不能使用$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;?>

推荐阅读