Sunday, February 12, 2012

Is it possible (if so, how) to use jQuery"s appendTo with $.Views?


Here are two ways I have tried and failed:




//fails
$( $.Views('//home/home.ejs', {data:data}) ).appendTo('#home');

//fails
$( '//home/home.ejs', {data:data} ).appendTo('#home');

3 comments:

  1. I'm not familiar with $.Views but, try this:

    $( $.Views('//home/home.ejs', {data:data}) ).appendTo($('#home'));


    or this:

    $( '//home/home.ejs', {data:data} ).appendTo($('#home'));


    when you are calling appendTo, you have to pass a jQuery Selector as the parameter, not only the selector string...

    ReplyDelete
  2. I found the error. It should have been $.View and not $.Views. But the second way still won't work.

    //works
    $( $.View('//home/home.ejs', {data:data}) ).appendTo('#home');

    //fails
    $( '//home/home.ejs', {data:data} ).appendTo('#home');

    ReplyDelete
  3. JavascriptMVC overrides some of jQuery's base methods. One of them is .html, allowing to specify a path to a view instead of the inner html:

    $("#home").html('//home/home.ejs', {data:data});


    Now, if you want to append, the .append method is overridden with the same functionality:

    $("#home").append('//home/home.ejs', {data:data});


    JSMVC Documentation: http://javascriptmvc.com/docs.html#!jQuery.fn.append

    ReplyDelete