Наблюдаемые помощники в 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.