Шаблон JQuery - получение индекса JSONList - PullRequest
0 голосов
/ 06 июня 2011

Привет, у меня есть объект jsonlist, и я отправляю его в шаблон.и я хочу отправить индекс элемента в метод getSurname, чтобы получить элемент из объекта json.Так как же я могу получить индекс элемента jsonList?

Мой шаблон:

$.template('deneme',
 '<div>${name}: <input onClick='getSurname(\"${$index}\")' 
  type='checkbox' /></div>

Мой список Json:

[{"name":"Sedat","surname":"Basar"},
{"name":"Deneme","surname":"Avile"},
{"name":"Ganmaz","surname":"Oyilmna"}]

function getSurname(){
....???
}

1 Ответ

1 голос
/ 06 июня 2011

Две мысли об этом:

1 - вместо того, чтобы запускать шаблон для каждого элемента вашего массива, вы можете передать весь массив в шаблон и получить лучший доступ к информации об индексе / элементе.

var data = [{"name":"Sedat","surname":"Basar"},
{"name":"Deneme","surname":"Avile"},
{"name":"Ganmaz","surname":"Oyilmna"}];

$("#deneme").tmpl({ people: data }).appendTo("#content");

<script id="deneme" type="text/html">
    {{each(i, person) people}}
    <div>
        ${name}: <input onClick='getSurname("${i}")' type='checkbox' />
    </div>
    {{/each}}
    <hr />
</script>

2 - Еще одна альтернатива - использовать функциональность tmplItem шаблона плагина. Это будет выглядеть примерно так:

var data = [{"name":"Sedat","surname":"Basar"},
{"name":"Deneme","surname":"Avile"},
{"name":"Ganmaz","surname":"Oyilmna"}];

function getSurname(element){
    var data = $(element).tmplItem().data;
    alert(data.surname);
}


$("#deneme").tmpl(data).appendTo("#content");

<script id="deneme" type="text/html">
    <div>
        ${name}: <input onClick='getSurname(this)' type='checkbox' />
    </div>
</script>

Образцы здесь: http://jsfiddle.net/rniemeyer/XCThu/

...