viewmodelプロパティを使用してナビゲーション位置を表す必要があります。viewmodelプロパティを使用してナビゲーション位置を表す
<div class="col-3">
<ul class="folders" data-bind="foreach: folders">
<li data-bind="text: $data,
css: { selected: $data == $root.chosenFolderId() },
click: $root.goToFolder"></li>
</ul>
</div>
<div class="col-6">
<!-- Mails grid -->
<table class="mails">
<thead>
<tr>
<th>Title</th>
</tr>
</thead>
<tbody data-bind="foreach: chosenFolderData">
<tr data-bind="click:$root.goToFolder">
<td data-bind="text: Title"></td>
</tr>
</tbody>
</table>
</div>
ユーザがアイテムをクリックするたびに、私はgoToItemsList関数を呼び出します。私のgoToItemsListの内部では、カテゴリー(ラップトップ、電話、ラジオなど)でアイテムの配列を返す計算されたobservableを配置します。
function TaskListViewModel() {
// Data
var self = this;
self.folders = ['T-Card', 'Laptop', 'Phones', 'Radios'];
self.chosenFolderId = ko.observable();
self.chosenFolderData = ko.observable();
self.tasks = ko.observableArray([]);
self.TCards = ko.observableArray([]);
// Behaviours
self.goToFolder = function (item) {
self.chosenFolderData = ko.computed(function() {
return ko.utils.arrayFilter(self.tasks(), function (mainItem){
if (item == mainItem.LoanItem()){return mainItem}
});
});
};
self.goToFolder('Laptop');
...
あなたは、好ましくは、実行可能なスニペットで、[MCVE]にコードを拡張してもらえますか?完全なreproを使わなければ混乱を招くかなりのビットがあります(例えば、計算結果はクリックハンドラ関数の中で宣言され、 'ul'ループのforeachは項目自体のように見えます) LoanItem'観測可能なプロパティですが、 'li'項目の中で' $ data'などと明示的に使用します)。 – Jeroen
こんにちはジェーレン、私は自分の投稿を更新しました。申し訳ありませんが、実行可能なスニペットを作成する方法はありません。 –