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