Наблюдаемые помощники в JS Views

Я пытаюсь получить обновление элемента, основанное на наблюдаемой передаче помощнику.

Наблюдаемое:

var siteGlobal = {
    page: null,
    parent: null
};

помощник

$.views.helpers({
    navState: function(id) {
        var cssClass = "nav_item";
        if (Number(id) === siteGlobal.parent) {
            cssClass += " current_page_parent";
        } else if (Number(id) === siteGlobal.page) {
            cssClass += " current_page_item";
        }
        return cssClass;
    }
});

$.views.helpers.navState.depends = [siteGlobal, "parent"];
$.views.helpers.navState.depends = [siteGlobal, "page"];

Элемент

<li data-link="class{:~navState(id)}" >...</li>

Таким образом, идея состоит в том, что, когда наблюдаемое изменяется, помощник отвечает, сравнивая значение, предоставленное связанным элементом.

1 ответ

Решение

Да, это будет работать.

Тебе нужно

$.views.helpers.navState.depends = [siteGlobal, "parent", "page"];

Сейчас если id является 3и ты звонишь

$.observable(siteGlobal).setProperty("page", 3);

тогда класс будет установлен в "nav_item current_page_item"

Вызов

$.observable(siteGlobal).setProperty("parent", 3);

и он будет установлен в "nav_item current_page_parent"

Смотрите www.jsviews.com/#computed@depends.

Другие вопросы по тегам