JS视图中的可观察助手

时间:2016-03-04 00:39:44

标签: observable jsviews

我正在尝试根据一个可观察到的辅助器进行元素更新。

可观察:

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发生变化时,帮助者会响应,比较链接元素提供的值。

1 个答案:

答案 0 :(得分:1)

是的,那会有用。

你需要

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

现在,如果id3,则您致电

$.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