どうすればいいのかよくわかりません。しかし、私は解決策に非常に近いので、ここであなたの専門家からの小さな助けが必要です。私の働くフィドルはここにあります。ページが読み込まれると、2つのチェックボックスがオンになります。私の見解は以下のように拘束されています
<tbody data-bind="foreach: dataOne">
<tr data-bind="css: { 'makeBold': $root.duplicates.indexOf(name1) !== -1 }" >
<td data-bind="text: id"></td><td > </td>
<td data-bind="text: display"></td><td > </td>
<td> </td>
<td>
<input type="checkbox" data-bind="checked: $root.duplicates.indexOf(name1) !== -1" />
</td>
</tr>
</tbody>
以下の私のビューモデル
var data1 = [{
name1: "one",
id: 1,
display: "Test1"
}, {
name1: "two",
id: 2,
display: "Test2"
}, {
name1: "three",
id: 3,
display: "Test3"
}];
var data2 = [{
name2: "five"
}, {
name2: "two"
}, {
name2: "three"
}];
var viewModel = {
dataOne: ko.observableArray(data1),
dataTwo: ko.observableArray(data2),
duplicates: ko.observableArray()
};
viewModel.dataTwo.push({
name: "four"
}); //add one on the end
var flattenedOne = ko.utils.arrayMap(viewModel.dataOne(), function (item) {
return item.name1;
});
var flattenedTwo = ko.utils.arrayMap(viewModel.dataTwo(), function (item) {
return item.name2;
});
var differences = ko.utils.compareArrays(flattenedOne, flattenedTwo);
//return a flat list of differences
ko.utils.arrayForEach(differences, function (difference) {
if (difference.status === 'retained') {
viewModel.duplicates.push(difference.value);
}
});
これで、ユーザーが[更新]ボタンをクリックすると、データが再度読み込まれ、3つのチェックボックスがオンになります。私が達成しようとしているのは
ユーザーが更新ボタンをクリックすると、テーブルの行にcssが追加され、その行のみが太字になります。
ユーザーが更新ボタンをクリックしたときにチェックされたチェックボックスをチェックしないでください。
したがって、この例では、ユーザーが[更新]ボタンをクリックすると、行が太字になりますが、チェックボックスはオンにしないでください。したがって、更新ボタンをクリックすると、最初の行のみが太字になります。現在、ページが読み込まれているとき、2行が太字になっていて、どちらが間違っているかがチェックされています。更新ボタンをクリックするだけで行が太字になります。みんな助けてください。