Proměnná z getJSON do jiné funkce a makro link

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
lukendo
Člen | 96
+
0
-

Zdravím, načítám si přes payload data, což se mi vpohodě načte, ale když s tím chci později pracovat, tak je už ta proměnná null a nemám tušení proč. Dále pak když použiji :

$.getJSON({link findProducts!}, {'id': $(this).val()}, function(payload) {

tak se mi to vygeneruje jako:

$.getJSON("\/eval\/www\/validations\/add?do=findProducts", {'id': $(this).val()}, function(payload) {
$('#product_name').keyup(function() {
          if($(this).val().length >= 3)
          {
              var  content = null;
              $.getJSON('http://localhost/eval/www/validations/add/' + $(this).val() + '?do=findProducts', function(payload) {
                  content = payload.products;
 				  console.log(content);
              });
              $('.ui.search').search({
                  source: content
              });
              console.log(content); // tady už je content null
          }
      });

Asi půjde o úplně začátečnické chyby, ale nemůžu se dopracovat k řešení. Díky

Editoval lukendo (24. 2. 2017 17:22)

David Matějka
Moderator | 6445
+
+2
-

to volani je asynchronni – proto je tam ten callback, kde mas volat to $('.ui.search').search({...

Mysteria
Člen | 797
+
+2
-

Jde o to, že ten další JS kód nečeká, až se vykoná požadavek na JSON, který je logicky pomalejší, takže to přesuň prostě dovnitř:

var  content = null;
$.getJSON('http://localhost/eval/www/validations/add/' + $(this).val() + '?do=findProducts', function(payload) {
	content = payload.products;
	console.log(content);
	$('.ui.search').search({
		source: content
	});
    console.log(content);
});
lukendo
Člen | 96
+
0
-

Díky. Sice mi teď nefunguje ta fce Semanticu, ale to už snad půjde.