我刚刚在kendo-ui遇到了一些奇怪的数据绑定。
<div data-role="view" data-title="hi" data-model="viewmodel">
<div data-role="header">
<div data-role="navbar">
<div data-role="view-title"></div>
<span data-bind="visible: visible">
<span data-align="right" data-role="button">edit</span>
</span>
</div>
</div>
</div>
<script>
var viewmodel = kendo.observable({
visible: true
});
var app = new kendo.mobile.Application();
</script>
我已经设置了一个DOJO示例来说明我遇到过的错误。 DOJO EXAMPLE
正如您所看到的,visible
中的viewmodel
属性设置为false
。这意味着,根据我设置的绑定,它应该隐藏按钮。但是,无论我将visible
标记设置为true
还是false
,该按钮始终显示。 (当您更改了可见标志时重新运行代码段)
但后来我尝试删除/添加属性以检查阻止&#39;阻止&#39;可见的绑定。我发现按钮属性data-align="right"
是阻止&#39;可见的绑定。
当您将data-align
中的visible
标记更改为{{1>时,您可以在此example(我从按钮中删除viewmodel
属性的位置)中看到或true
它实际上隐藏/显示基于false
标志的按钮。
是否有人知道此错误和/或有解决方法/解决方案?
答案 0 :(得分:1)
看起来你绑定了一个span元素,其中包含一个嵌套的span,包含一个按钮。
两个跨度都有数据绑定,但您只需在按钮上设置对齐;这应该设置为外部容器,如下所示:
<!-- add the data-align on this outer 'container' element -->
<span data-align="right" data-bind="visible: visible">
<!-- ... and not on the element below here... -->
<button data-role="button">edit</button>
</span>
我还克隆并更新了your dojo example here。