我正在尝试根据一个可观察到的辅助器进行元素更新。
可观察:
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>
所以我的想法是,当observable发生变化时,帮助者会响应,比较链接元素提供的值。
答案 0 :(得分: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"