Как получить доступ к массиву через RJS-прокси? - PullRequest
0 голосов
/ 19 июля 2010

В RJS-адаптере Rails

page['id'] // $('id')

обращается к CSS-идентификатору,

page['id'].property // $('id').property

к его свойству.Но как я могу получить доступ к индексу массива, например,

page.select('ul').value_at(2) // $('id').select('ul')[2]

Есть ли способ сделать это без записи:

page << "$('id').select('ul')[2]"

1 Ответ

2 голосов
/ 01 августа 2010

Вы не можете получить доступ к таким массивам из rjs, но любой из них будет работать:

page['id']['firstChild']['nextSibling']
page['id'].down(2)

Формирует:

$("id").firstChild.nextSibling;
$("id").down(2);

Конечно, лучшим решением было бы добавить некоторый идентифицирующий класс css или идентификатор элемента ко второму элементу и выбрать его в своем файле rjs.

Если вы хотите использовать page.select, вы можете реализовать value_at следующим образом (здесь вызывается pick):

>>> Array.prototype.pick = function(n) { return this[n]; };
function()
>>> ['a', 'b', 'c'].pick(1)
"b"
...