带有转换器的JSViews可见链接没有'不起作用

JSViews visible link with converter doesn't work

本文关键字:不起作用 链接 转换器 JSViews      更新时间:2023-09-26

我升级到了JsViews的最新版本,它似乎坏了。

如果我有一个像"visible{:property}"这样的数据链接,它就可以工作了。

如果我有一个类似"visible{convert:property}"的数据链接,它就不起作用。

据我所知,它看起来像是在这个过程的早期为attr"可见",并将其更改为"css显示"。不过,当我有一个转换器时,在propertyChangeHandler中,它会执行以下行

attr=linkCtx.attr||attr;//在renderTag 中的标签实例化过程中,linkCtx.attr可能已设置为tag.attr

这导致它将attr改回"可见",然后在updateContent中,"css-"的regex测试失败,并且它从不设置display属性。

我是不是错过了什么?这不应该奏效吗?

我创建了一个小提琴,显示我正在尝试做什么。在不工作的情况下,它没有设置display:none,而是设置visible="false"

http://jsfiddle.net/4scbgjpx/2/

<script id="worksTempl" type="text/x-jsrender">
<div data-link="visible{:show}">
    <span data-link="name"></span>
</div>
</script>
<script id="failsTempl" type="text/x-jsrender">
<div data-link="visible{negate:show}">
    <span data-link="name"></span>
</div>
</script>
$.views.converters({
    "negate": function (val) { return !val; }
});

是的,你是对的,那是一个错误。它现在已经修复(提交58),您的jsfiddle现在可以正常工作了。