Codeigniter+Angular Js:如何保存flash数据


Codeigniter + Angular Js: How to keep flashdata?

情况如下:

我正在使用Codeigniter+Angular Js制作一个简单的应用程序。

我用Angular进行了客户端验证,用Codeigner进行了服务器端验证。两者都运行良好,但有一点非常重要:我无法显示来自服务器端验证的flashdata消息。

可能重定向到登录页面需要多个服务器请求,然后flashdata就会丢失。

这就是我所做的:

在代码点火器控制器中:

$this->session->set_flashdata('errors', 'Username/password combination not correct');
$this->session->keep_flashdata('errors');
redirect('#/login');

视图中:

<?php 
      echo validation_errors(); 
      if ($this->session->flashdata('errors')) 
      { 
         echo '<p>' . $this->session->flashdata('errors') . '</p>';
      }
?>

阅读StackOverflow和谷歌认为解决方案将使用:

$this->session->keep_flashdata

但对我来说不起作用。

这就是问题所在:

如何为多个服务器请求保留flash数据?

我无法加载视图,因为我在一个有角度的js部分中,所以我必须重定向。但我必须能够不惜任何代价保留flash数据。

不要在同一函数中添加$this->session->keep_flashdata('errors');,而是将其添加到控制器的构造函数中。这将为另一个服务器请求保留flash数据,以便以后使用。