Професионална програма
Loading...
vitaliti avatar vitaliti 35 Точки

[Technical Issue] Homework BaaS и Parse

Здравейте колеги.

Ако може някой да ми обясни защо това не работи.
И защо когато махна Ифито и напиша във конзолата на chrome showCountries(),
ми излиза списъка с държавите и красивия css,както трябва.

Тагове:
0
JavaScript Applications 21/04/2015 10:08:25
a.angelov avatar a.angelov 1317 Точки

При всички случаи работи с данните получени от дадена заявка през success callback-а, защото заявките са асинхронни и може да се получи така, че да нямаш още данните, а да се опитваш да ги обработваш. Видях, че си сложил флаг false на async пропъртито на заявката вероятно за да избегнееш горния сценарий, но да знаеш, че свети предупреждение в конзолата, че не е препоръчително да се ползва :)

ПС. При мен проработи с ифиито, заредиха ми се страните и даже промених името на една от тях :) Но имаш още някаква грешка, защото която и страна да едитна се сменя името само на последната - явно objectId-то не е коректно...

 

2
vitaliti avatar vitaliti 35 Точки

Интересно.При мен само  предупреждението в конзолата свети.Няма добавени елементи,няма други грешки,нищо.
Празна страница и това е.Иначе данните си ги взимам и обработвам без проблеми.В дебъгера на Chrome всичко е  OK .
Даже си копнах линка от PasteBin и пак нищо.В Html фйла имам само 1 div с id='wrapper' и там jquery i app.js и тва е.Ще го направя със success callback-а :( .

0
20/04/2015 23:23:32
AleksandurSeferinkin avatar AleksandurSeferinkin 335 Точки

Променя се само последната (и ще се трие само последната), защото колегата забравя за scope на променливите.

В цикъла във функцията showCountries():

var id = data.results[i].objectId;

Тази променлива скача най-отгоре в същата функция. Той дефинира по една функция на всеки бутон, обаче всичките те реферират точно тази променлива. Това означава, че след приключването на цикъла, всички click handler-и ще реферират към една и съща променлива, която ще пази последната зададена стойност.

В такива случаи може да направи следното:

var btnDelete = $('<button>').text('DELETE').click(function () {
     var targetId = id;
});

Така ще се копира стойността на това id и ще се пази в closure.

0
21/04/2015 14:23:58