Codeigniter + Angular Js:如何保持flashdata?

时间:2014-04-30 12:28:30

标签: javascript php angularjs codeigniter validation

情况如此:

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

我使用Codeigniter进行了Angular和服务器端验证的客户端验证。 两者都运行正常,除了一件事,非常重要:我无法显示来自服务器端验证的flashdata消息。

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

这就是我所做的:

在codeigniter控制器中:

$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和Google中阅读已经认为解决方案将使用:

$ this-&gt; session-&gt; keep_flashdata

但在我的情况下不起作用。

这就是问题:

如何为多个服务器请求保留flashdata?

我无法加载视图,因为我在一个角度的js partial里面,所以我必须重定向。但我必须能够不惜一切代价保留flashdata。

1 个答案:

答案 0 :(得分:2)

不要在同一个函数中添加$this->session->keep_flashdata('errors');,而是在控制器的构造函数中添加它。这将使flashdata保留另一个服务器请求,允许它在之后使用。