我有以下 html 绑定到包含 id 和状态的对象。我想将状态值转换为特定的颜色(因此转换函数 convertStatus)。我可以看到转换器在第一个绑定上工作,但是如果我更改绑定列表中的状态,我看不到任何 UI 更新,也看不到随后调用 convertStatus。我的另一个问题是尝试绑定第一个跨度的 id 属性似乎没有按预期工作(也许无法通过绑定设置此值......)
HTML:
<span data-win-bind="id: id">person</span>
<span data-win-bind="textContent: status converter.convertStatus"></span>
Javascript(我尝试使用修改状态值):
// people === WinJS.Binding.List
// updateStatus 是一个函数,由于系统中的状态变化而被调用
function updateStatus(data) {
persons.forEach(function(value, index, array) {
if(value.id === data.id) {
value.status = data.status;
persons.notifyMutated(index);
}
}, this);
}
我已经看到 notifyMutated(index) 对不使用转换器的值起作用。
使用 github 项目更新
示例的公共存储库(不工作) - 这是一个非常基本的应用程序,它有一个带有一组默认数据的列表视图和一个在单击项目时执行的函数。该函数尝试随机化项目的绑定字段之一并在列表上调用 notifyMutated(...) 以触发视觉更新。即使定义了 WinJS.Binding.List({ binding: true }); 除非我通过 notifyReload() 强制更新,否则我看不到更新,这会在 listview 元素上产生重新加载闪烁。