jquery クイックサーチを使用して、ノックアウト foreach ループによってデータが取り込まれているテーブルを検索しています。foreach が終了した後、quicksearch 要素を開始する必要があります。いくつかのアプローチを試みましたが、これまでのところ成功していません。
「afterRender」を使用してみましたが、現在のアイテムがコレクションの最後のアイテムであるかどうかを判断できませんでした。bindingHandlers も使用してみましたが、長さ 2005 ではなく長さ 0 のコレクションを取得しました。
それで:
- foreach ループの最後の要素を見つける最善の方法は何ですか?
- この特定のシナリオでそれを実装する最良の方法は何ですか?
これが私の見解です:
<tbody data-bind="foreach: containers">
<tr>
<td><span data-bind="text: code"></span></td>
<td><span data-bind="text: typeName"></span></td>
<td><span data-bind="text: parentClient"></span></td>
<td><span data-bind="text: client"></span></td>
<td>
<a data-bind="attr: { onclick: deleteUrl }">
<i class="icon-trash"></i>@delete </a>
|
<a data-bind="attr: { href: editUrl }">
<i class="icon-edit"></i>@edit</a>
|
<a data-bind="attr: { href: qrUrl }" target="blank">
<i class="icon-qrcode"></i>
@printQr
</a>
</td>
</tr>
</tbody>
ここに私のノックアウトコードがあります:
function Container(data) {
var self = this;
self.id = ko.observable(data.Id);
self.code = ko.observable(data.Code);
self.typeName = ko.observable(data.TypeName);
self.parentClient = ko.observable(data.ParentClient);
self.client = ko.observable(data.Client);
self.deleteUrl = ko.computed(function () {
return "GetModal('/Containers/Delete/" + data.Id + "','containerModal');";
});
self.editUrl = ko.computed(function () {
return '/Containers/Edit/' + data.Id;
});
self.qrUrl = ko.computed(function () {
return '/Qr/Index/10?entity=' + data.Id;
});
}
function ContainersViewModel() {
var self = this;
self.containers = ko.observableArray([]);
self.counter = ko.computed(function () {
return self.containers().length;
});
$.getJSON("/Containers/Json", function (data) {
var containers = $.map(data, function (item) {
return new Container(item);
});
self.containers(containers);
});
};
ko.applyBindings(new ContainersViewModel());
どうもありがとう !
ニール