基になるデータが変更されたときに更新される 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);
しかし、役に立たない。
基礎となるデータの変更に応じてスパンテキストを調整したいのは明らかです-どんな助けでも大歓迎です!