Поднять: создать гиперссылку AJAX для каждого элемента с помощью CSS-преобразования - PullRequest
6 голосов
/ 17 октября 2011

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

Мой шаблон выглядит так:

<lift:surround with="default" at="content">
<div class="locations lift:Main.locations">
    <ul>
        <li class="one">
            <span class="name">Neverland</span>
            (<a href="#" class="delete">delete this</a>)
        </li>
    </ul>
</div>
</lift:surround>

Я использую следующее CSS-преобразование, чтобы заполнить его:

def locations = {
    ".one *" #> somecollection map { item =>
        ".name" #> item.name &
        ".delete" #> ????
    }
}

Теперь, вместо "????", я бы хотел добавить что-то вроде SHtml.a( ()=>delete(item), _), но _ здесь имеет тип CssSel, и аргумент a должен быть NodeSeq

Я, конечно, мог бы выразить простым xml.Text("delete this"), но я хочу повторно использовать текст внутри шаблона.

Или есть другой способ создания гиперссылок AJAX?

1 Ответ

2 голосов
/ 17 октября 2011

Я узнал, как это сделать. По сути, вместо генерации тега a я должен использовать тег из шаблона и поместить в него код AJAX с помощью преобразования CSS:

def locations = {
    ".one *" # somecollection map { item =>
        ".name" #> item.name &
        ".delete [onclick]" #> ajaxInvoke (() => delete(item))
    }
}

Я подозреваю, что таким образом можно было бы также создавать ссылки, которые работают как с JavaScript, так и без него

...