当基础数据更改时,我遇到了更新 JSViews 模板的问题。它涉及使用转换器功能将数据链接到基础数据的跨度。当异步回调服务器后底层数据发生变化时,跨度文本不会更新。
标记:
{^{for thedata.myarrayobject}}
<span data-link="{myconverter:var1:} name{:'theName' + var2}"></span>
{{/for}}
脚本:
$.views.converters({
myconverter: function (val) {
switch (val) {
case 1:
return 'Test1';
break;
case 2:
return 'Test2';
break;
default:
return 'Default';
}
}
});
根据 data.myarray 对象中的值,跨度在页面加载时正确显示。例如,如果我们有:
thedata.myarrayobject[0].var1='1';
thedata.myarrayobject[0].var2='John';
thedata.myarrayobject[1].var1='2';
thedata.myarrayobject[1].var2='Matthew';
它将加载为:
<span name="theNameJohn">Test1</span>
<span name="theNameMatthew">Test2</span>
但是,如果在异步回调之后基础数据更改为:
thedata.myarrayobject[0].var1='2';
thedata.myarrayobject[0].var2='John';
thedata.myarrayobject[1].var1='1';
thedata.myarrayobject[1].var2='Matthew';
跨度文本保持不变。
我已经调试了 js 代码,并且底层数组参数 'var1' 肯定被设置为新值。我试过打电话:
$.observable(thedata.myarrayobject).refresh(thedata.myarrayobject);
但无济于事。
我显然希望跨度文本随着基础数据的变化而调整 - 任何帮助将不胜感激!