车把不解析?

I can't for the life of me figure out what I'm doing wrong.

This is my HTML/JS:

<html>
<head>
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
     <script src="handlebars-v1.1.2.js"></script>
     <script>
        $(document).ready(function(){
            var jsonString = null;
            $.getJSON("data.json", function(data) {
                jsonString = data;
            });
            var source = $("#items").html();
            var template = Handlebars.compile(source);
            $("ul").append(template(jsonString));
        });
     </script>
</head>
<body>
    <script id="items" type="text/x-handlebars-template">
        <span>{{Title}} : {{CSCI}}</span>
    </script>
    <ul>
    </ul>
</body>
</html>

And this is my data.json file:

{
 "Title":"I am a thing",
 "CSCI":" "
}

The only output I get is the ":" so it's doing something properly. The console shows nothing (as in completely empty so I assume there's no syntactical errors anywhere?).

I don't like posting questions like this as it's usually because of a small mistake on my part somewhere, but I know you guys love this stuff ;)

As getJSON is an async function call you need to compile Handlebars in success callback function

    $(document).ready(function(){
        var jsonString = null;
        $.getJSON("data.json", function(data) {
            jsonString = data;
            var source = $("#items").html();
            var template = Handlebars.compile(source);
            $("ul").append(template(jsonString));
        });            
    });

getJSON is async, and so

var source = $("#items").html();
var template = Handlebars.compile(source);
 $("ul").append(template(jsonString));

should all be inside of the callback as well