首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSViews:如何使数据链接助手函数正确更新

JSViews:如何使数据链接助手函数正确更新
EN

Stack Overflow用户
提问于 2014-02-21 15:19:36
回答 1查看 577关注 0票数 0

我很难弄清楚如何将这个场景链接起来,并考虑了几次求助,但最后我还是解决了我的问题,只有一个小部分我找不到解决方案。

我启动了一个JsFiddle来测试它:http://jsfiddle.net/ClaudeVernier/U3dZ8/

代码语言:javascript
复制
// based on Sample: data-linking to <select>... and much more...
// http://www.jsviews.com/#jsvplaying

在这种情况下,我有两个列表,“人员”和“关系”(或这些人与我的关系如何)。

然后,我想要构建一个span和下拉列表数组,其中span显示下拉列表的当前值,并且只显示span或仅显示下拉列表,这取决于用户是否是编辑模式。

显示完整列表和编辑模式复选框的模板基于页面的全局模型,而页面的下半部分则是从为数组中的每个项呈现的模板中呈现的。

要将跨度和下拉列表的可见性链接到复选框的值,我使用了一个助手,但它不是双向的,因此复选框无法工作。是辅助函数不能用于数据链接吗?

感谢您的帮助或建议,如果我的实施是不正确的。向你问好,克劳德

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-23 18:29:24

您的助手-- ~editMode()是不可观察的-- JsViews不知道它依赖于model.editMode,因此对model.editMode的可观察到的更改不会触发对~editMode()绑定的更新。

但是您可以声明一个依赖项,然后它就可以工作了:

$.views.helpers.editMode.depends = [model, "editMode"];

这里是http://jsfiddle.net/U3dZ8/5/

这里的语法是,如果您想在与当前数据对象不同的对象上声明路径上的依赖项,则可以将任何对象传递给depends数组,然后是一个或多个以该对象为根的路径:['path.from.currentObject', otherObject, 'path1.from.otherObject', 'path2,from.otherObject' .... ]

您可以做的另一件事(对于对象或路径不是预先静态确定的情况)是提供一个函数.depends = function() {return [listOfPaths_OrObjectsFollowedByPaths]};

使用带有声明依赖项的editMode()函数(可观察到的JsViews )的另一种替代方法是直接绑定到model.editMode --如下所示:

data-link="visible{:!~model.editMode}"data-link="visible{:~model.editMode}".

要做到这一点,只需将模型作为助手对象传递:

jsDropDownsTemplate.link("#myDropDowns", model.myRelations, {model: model});

这是一个:http://jsfiddle.net/U3dZ8/6/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21938223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档