KnockoutJS: объект события - PullRequest
0 голосов
/ 13 марта 2011

Этот вопрос относится к KnockoutJS: отслеживание нажатий в меню . Я был в состоянии сказать, какое меню было нажато, указав значение идентификатора. Мне нужно изменить эту модель и использовать event.target для получения дополнительной информации. Я пытался это , но, похоже, не работает. Я также создал глобальную функцию menuClicked:

var viewModel = {};
function menuClicked(event) {
    var id = ($(event.target).tmplItem().data).Id;
    var isActive = viewModel.menuActive();
    if (!isActive || viewModel.currentMenu() == id)
        viewModel.menuActive(!isActive);
    viewModel.currentMenu(id);
}
$(function () {
    $.ajax({
        url: 'console.asmx/Initialize',
        type: "POST",
        cache: false,
        contentType: "application/json; charset=utf-8",
        data: "{}",
        dataType: "json",
        success: function (data) {
            viewModel = data.d;
            viewModel.menuActive = ko.observable(false);
            viewModel.currentMenu = ko.observable(0);

            ko.applyBindings(viewModel);
        }
    });
});

И привязать гиперссылки к этому методу:

<a class='${ Class }' data-bind='click: menuClicked'>${ Name }</a>

Но каждый раз, когда я щелкаю гиперссылку, объект события имеет значение null / undefined. Я пытаюсь получить объект, используемый для визуализации гиперссылки, как в в этом примере , за исключением того, что мои гиперссылки не имеют идентификаторов.

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 14 марта 2011

Объект события передается привязке клика, но только в последнем коде Knockout (так после выпуска 1.12). Это будет в версии 1.2, которая должна появиться в ближайшее время.

Вы можете получить последний код здесь: https://github.com/SteveSanderson/knockout/tree/master/build/output

Это довольно стабильно. Надеюсь, это поможет.

...