Шаблон JQuery, создать 2 комбо из вложенного JSON - PullRequest
0 голосов
/ 25 декабря 2011

так что это мой случай .. Я хочу создать 2 комбо, второе зависит от значения первого. я хочу, чтобы они были построены из вложенного объекта JSON

мой объект json выглядит так:

var API = 
{
methods:
{
    login:
    {
            checkin:{},
            logout:{}
    },
    register:
    {
            register:{},
            getinfo:{}
    }
}
} 

Я хочу создать первое комбо из каждого объекта в методах (их намного больше, чем 2, перечисленных здесь)

так что я хочу получить: войти и зарегистрироваться как теги внутри а затем я хочу создать второе комбо, заполненное объектами по методу, выбранному в первом комбо.

как я могу это сделать? какие будут значения в моем шаблоне? я имею в виду значения в знаках $ {}

спасибо!

1 Ответ

0 голосов
/ 25 декабря 2011

Хорошо, я понял ...

То, как я это сделал, выглядит следующим образом:

Страница aspx:

<select id="drpNameSpace"></select>
<select id="drpMethod"></select>

<script id="nameSpaceComboTmpl" type="text/x-jquery-tmpl"> 
    {{each methods}} <option value='${$index}'>${$index}</option>{{/each}}
</script>
<script id="methodComboTmpl" type="text/x-jquery-tmpl"> 
   {{each $data}} <option value='${$index}'>${$index}</option>{{/each}}
</script>

мои js:

$(function () {
$("#drpNameSpace").change(nameSpaceChanged);
$("#drpMethod").change(methodChanged);
fillNameSpaceCombo(); }); 


function fillNameSpaceCombo () {
        $("#nameSpaceComboTmpl").tmpl(API).appendTo("#drpNameSpace");
        fillMethodCombo($("#drpNameSpace").val());
}


function nameSpaceChanged () {
    $("#drpMethod").html("");
    var value = $("#drpNameSpace").val();
    fillMethodCombo(value);
    methodChanged();
}

function fillMethodCombo (value) {
    $("#methodComboTmpl").tmpl(API.methods[value]).appendTo("#drpMethod");
}

прекрасно работает для меня ..

хитрая часть, которую я не знал, была: {{each $ data}} $ {$ index} {{/ each}}

надеюсь, это кому-нибудь поможет ...

конец;

...