私はここで困惑していて、私が何を見逃しているのか知りたいです。
私はちょうどいくつかのコードを書き直して、いくつかのものをクリーンアップしていました。ajax呼び出しを行い、json文字列を返すメソッドがあります。このメソッドを使用しているので、名前空間内でこのメソッドに抽象化した場所がいくつかあります。
これは返されたjsonオブジェクトです
{"charge_ID":"4","price":"37","description":"corporate rate"}
これは抽象化された方法です。
wwdb.getChargeRate = function( chargeID ){
var rate = {}, prop;
$.post(baseUrl + 'dashboard_job/jx_get_charge_rate',
{
'charge_ID': chargeID
},
function( data ){
for( prop in data) {
rate[prop] = data[prop];
}
},
'json'
);
return rate;
};
レートにデータを割り当てることができると思っていましたが、それを機能させるには繰り返し処理する必要がありました。実際、$。post()メソッドのfunction()部分から直接データを返すことができると思いましたが、それは機能しませんでした。では、質問1.なぜデータを返すだけではいけないのですか?
しかし、もっと基本的でイライラするのは、以下のコードではオブジェクトのプロパティにアクセスできないという事実です。質問2.それはなぜですか?
$('#charge_rate_slt').change(function(){
var t = $(this), v = $(t).val(), rate;
console.log(wwdb.getChargeRate( v )); //returns object ok
rate = wwdb.getChargeRate( v ); //assigns object ok
console.log(rate); //displays in firebug as object with properties
console.log(rate.price) //undefined
for(p in rate)
console.log( p ); //undefined?
});