#201402追記
これは全く良い方法ではないです(コメント参照)
なお同期通信にするのもあまり筋の良い方法ではなくて、コールバックで順序を保障するのが普通です。
本気で設定ファイルとして読み込みたいなら、renderingの段階で渡すのがよいかもしれません。
#概要
JQueryのgetJSONは非同期通信なので、JSONで書いた設定ファイルから値を取ろうとしても、取れないまま処理が進んでしまう。
コールバック関数の中で処理を完結させれば問題ないが、グローバル変数に値をセットしたい場合は、同期通信にしてからgetJSONする必要がある。
具体的には、$.ajaxSetup({async: false});を使う。
気付かないまま詰まったので参考にどうぞorz
#コード
sample.js
var hoge
function setPreference(){
$.ajaxSetup({async: false});//同期通信(json取ってくるまで待つ)
$.getJSON("preference.json", function(data){
hoge = data.param;
});
$.ajaxSetup({async: true});
}