Loading...
naskobogdanov avatar naskobogdanov 11 Точки

Можеш да хвърлиш едно око на моето решение ТУК.
Незнам до каква степен е опримизирано, но работи.

Успех!

0
antonp1p2 avatar antonp1p2 17 Точки

И при мен е така само че заради някаква причина не работи. Каква ти е връзката между двете таблици ? Така създавам ред в Town таблицата --> 

{
  "name": "Liverpool",
  "country": 
   {
     "_type" : "KinveyRef",
     "_id" : (Englands country row id),
     "_collection" : "Country" 
   } 
}
0
15/03/2016 20:53:57
naskobogdanov avatar naskobogdanov 11 Точки

При мен градовете се наливат едната колона, а държавите в другата. 
По този начин в едната колона имам повтарящисе държави, които ги филтрирам в client-side, да не показва повтарящите се.
След което, за да ми покаже градовете пращам само една GET заявка с филтър по държава.

$.ajax({
        method: 'GET',
        headers: {
            'Authorization' : 'Basic bmFza376MTIzNA==',
            'X-Kinvey-API-Version' : '3'
        },
        contentType: 'application/json',

        url: 'https://baas.kinvey.com/appdata/kid_WyOklpXfkZ/Town?query={"country" : "' + countryName + '"}',
        error: ajaxError,
        success: townsLoaded

    });

Както казах, не е съвсем оптимизирано, но работи.
Това беше първото нещо, което се сетих ;)
 

0
antonp1p2 avatar antonp1p2 17 Точки

А колко таблици имаш ? Имаш отделна таблица за Държавите и отделна за Градовете нали ? Има ли някаква връзка между тях ? 
При мен в таблицата на Градовете имам две колони с Имената на градовете и Държавата. Като в колоната на държавата имам редовете с всички пропъртитата от държавите в таблицата с Държавите. Като JOIN на две таблици в SQL. 

0
15/03/2016 21:30:23
naskobogdanov avatar naskobogdanov 11 Точки

Имам само една таблица с две колони. 
Защо трябва да имам две таблици?

0
antonp1p2 avatar antonp1p2 17 Точки

Амии... явно аз не съм разбрал условието. Но отначалото си мислех че трябва да имаме две таблици едната за държавите с техните пропъртита и едната за градовете с техните си пропъртита и така си ги направих и така си нацъках и 5те таска по това домашно. Освен този 4-тия. Така с една таблица е ясно как се прави.

И все пак остава въпроса как се правят заявки с две релативни таблици :Д

0
naskobogdanov avatar naskobogdanov 11 Точки

По условие, трябва да имаш две таблици, една с държави и още една с държави и градове.
А за връзките между таблиците, остава TODO за изпита :)

1
antonp1p2 avatar antonp1p2 17 Точки

Мм... намерих нaчин. Малко странен обачe си работи. Ето с такъв URL --> 

http://baas.kinvey.com/appdata/some_key/Town?resolve_depth=2&retainReferences=false

http://devcenter.kinvey.com/rest/guides/datastore#RelationalData   Ето тук можеш да прочетеш за връзки между таблици и защо се използва този URL. Накратко той премахва _obj пропъртито, и така пропъртито country в Town таблицата си става обикновена пропърти:обект двойка... Става по-лесно да търсим стойности на пропъртитата в country пропъртито на Town таблицата.

И все пак моето решение с този URL връща всичко от Town таблицата и после го филтрирам с If-oве. Иска ми са да разбера как да докарам URL-a така че да нямам нужда от тия проверки при success-а и директно да си ми връща името на града чийто държава е зададената държава от потребителя.

Ето как правя проверката -->
 

countryNameForTownSelection = $('#select-name').val();
function takeTownsOut(data) {
    $('body').append('<ul id="towns-list"/>');
    for(var i in data){
        var townData = data[i];
        console.log(townData.name);
        if(townData.country.name === countryNameForTownSelection){
            $('#towns-list').append('<li id="iid' + i + '" />');
            $('#iid' + i).append('<strong />').html(townData.name);
        }
    }
}



Дано си ме разбрал и да съм ти бил полезен. :)

1
15/03/2016 22:46:43
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.