webForumDet fria alternativet

Flerspråksstöd i JS

1 svar · 580 visningar · startad av l-boy

l-boyMedlem sedan juli 2003221 inlägg
#1

Sitter med ett projekt som kräver flera olika språk och tror mig ha kommit på en bra lösning.

I den js-fil som används gör jag följande:


$(document).ready(function() 
{	

var tArray = new Array("price","sum","rounding"); 
	
$.getJSON("/getJSONTranslation", { "words": tArray } , function(data)
{
 alert(data.price)
});	

<!!Här vill jag kunna skriva ut tex. data.sum!!>

});

Att köra alert(data.price) fungerar fint, men mina JS-kunskaper är så svaga att jag inte vet hur jag skall returnera "data" och använda det längre ner i js-filen... :r

voigtann1Medlem sedan juni 20019 519 inlägg
#2

AJAX callbacken kan ju innebära att även om man flytta ut data till det globala skopet så kan den vara null, var kör du med data objektet "längre ner"? Om möjligt:
1. kör inte JSON callback om du kan undvika det
2. Om det inte är möjligt så se till att alla andra funktioner som kräver data att den ha en fallback av något slag om data inte har blivit laddat:

var dataDefault = {
    price: null
    /*...*/
}
var data = dataDefault;
$(document).ready(function() {    
    var tArray = new Array("price","sum","rounding"); 
    $.getJSON("/getJSONTranslation", { "words": tArray } , function(d) {
        data = d;
    });    
    /*...*/
    <!!Här vill jag kunna skriva ut tex. data.sum!!>
});

Finns fler sätt att lösa det på, binder alla events kräver data från json objektet först du ha fått en success på callbacken på ajax callbacken:

var dataDefault = {
    price: null
    /*...*/
}
var data = dataDefault;
$(document).ready(function() {    
    var tArray = new Array("price","sum","rounding"); 
    $.getJSON("/getJSONTranslation", { "words": tArray } , function(d) {
        data = d;
		someFunction();
    });    
    /*...*/
	var someFunction = function () {
		<!!Här vill jag kunna skriva ut tex. data.sum!!>
	}
});
133 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)