This lab will get you well-versed in serving data from the server, and changing your page without refreshing the page. They form an important portion of your app. Especially, Assignment 7 includes these tasks!
$.get("http://URL", callBackFn)
$.post("http://URL", {"json":"json"}, callBackFn)
function addProject(result) {
var projectHTML = '<a href="#" class="thumbnail">' +
'<img src="' + result['image'] + '" class="img">' +
'<p>' + result['title'] + '</p>' +
'<p><small>' + result['date'] +
'</small></p></a>';
}
$ bash lab6/check-setup.sh
I got the error
bash: lab6/check-setup.sh: No such file or directory
Make sure you're in your 'introHCI' directory and that you've cloned lab6 here.
$ sudo bash lab6/check-setup.sh
What's the vagrant password?
vagrant
I get a blank page!
Make sure node is running (see previous slide).
Wait what's the callback?
Check back on slide 14 and 15. The callback will be called once your $.get(<URL>, <callback>);
inside the addProjectDetails
completes, and will have the result of the GET
passed in. If you're extra curious it's the success parameter mentioned in the jquery.get documentation.
I'm having trouble figuring out how to select the right div!
Try looking at lab 3 slide 24 for selecting the correct class based on the id. Once you've done that, you're one step away.
I'm still having problems picking the details class out for the specific project id!
Yes this is an interesting selector puzzle! You can use selectors to select a hierarchy like so: slide 22-Selectors:space indicate hierarchy or jQuery: Descendant Selector. If you want more practice with selectors, have fun with this game: CSS Diner.
Wait, wait! Where do I get the ID from?
Ah... another thinker! Without giving too much away, take a look at what is inside the result
variable.
$('body').css('background-color', colors[0]);
$('.thumbnail').css('background-color', colors[1]);
$('h1, h2, h3, h4, h5, h5').css('color', colors[2]);
$('p').css('color', colors[3]);
$('.project img').css('opacity', .75);
git status
git add ...
git commit -m "putting it together lab"
git push
heroku create newapplicationname
git push heroku master
Integrate AJAX requests to at least one relevant external API into your portfolio
$.get('http://foobar.com', callbackFunction, 'jsonp')