おそらく一部の人にとっては些細な質問です。次のようなオブジェクトのビューモデルがあります。
this.Activities = ko.observableArray([
{ "date": "28/11/2012 00:00:00",
"activities": [
{ "company": "BOW",
"description": "Backup Checks",
"length": "60"
},
{ "company": "AMS",
"description": "Data Request",
"length": "135"
},
]},
{ "date": "30/11/2012 00:00:00",
"activities": [
{ "company": "BOW",
"description": "Backup Checks",
"length": "60"
},
{ "company": "SLGT",
"description": "Software Development",
"length": "240"
},
{ "company": "BOW",
"description": "Data Request",
"length": "30"
},
]},
]);
アクティビティの配列を非表示にし、日付を表示するアコーディオンを作成したいと思います。日付がクリックされるたびに、この日付に一致するアクティビティのリストが、下の適切なパネルを展開することによって表示されます。ここで、Knockout.jsを使用しないプロジェクトでは、一般的なActivityオブジェクトのIdを使用して、アコーディオンヘッダーのID属性をアコーディオン本体要素のname属性にリンクします。これを実現するために、強く型付けされたビューでモデルプロパティを使用します。Knockout.jsでは、アクティビティの詳細をビューモデルにフィードしているため、データバインディング中に作成されるHtmlの構造を制御することは制限されています。次に、アコーディオンヘッダーを一致するボディ要素にリンクするにはどうすればよいですか?