Basically I'm trying to make a popup using this ajax:
$.ajax({
type: 'GET'
url: 'news/read'
dataType: 'json'
cache: false
timeout: 10000
}).done (msg) ->
$("article#pop-read").empty().html msg.view
processing = false
window.history.pushState
path: msg.url
, "", msg.url
false
And I'm returning a view value and it's url with this:
$data = json_encode(array(
'view' => View::make('layouts.read'),
'url' => 'news/read/2013/11/24/test-title-seperate-with-dash'
));
return $data;
This all works really well except that I can't get the view value from laravel (it returns Object object
in javascript). But it returns nicely if I directly write it like return View::make('layouts.read')
. Why is that?
Additionally (don't have to answer, not primary question), the back button on my browser doesn't work when I use pushState
, is it a bug?
You may try this
$data = json_encode(array(
'view' => (String)View::make('layouts.read'),
'url' => 'news/read/2013/11/24/test-title-seperate-with-dash'
));
return $data;
Also, you can use
View::make('layouts.read')->render();
View::make('layouts.read')->__toString();
Also, Laravel
provides Response::json()
method for same reason (instead of json_encode
).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With