1

ビューモデルに次のようなメソッドがあります。

self.search = function () {
    $.ajax({
        url: "/api/SearchCustomers",
        data: { id: self.custTerm },
        type: "GET",
        success: function (data) {
            self.customers(data);
        }
    });
}

私がやりたいのは、ノックアウトvisibleプロパティを使用してメソッドが呼び出された場合に要素を表示することです。それは可能ですか?

そのメソッドを次のようにボタンにアタッチしました。

$(document).ready(function () {
    var viewModel = new SearchCustomerViewModel();
    ko.applyBindings(viewModel);
    $("#btnSearch").click({ handler: viewModel.search });
});

私はこれを試しましたが、うまくいきませんでした:

<div data-bind="visible: search">
    <strong><span data-bind="text: customersToShow().length"></span></strong>
    <span data-bind="">customers</span> found.
    <p>
        <label>
            Exclude Closed Accounts:
            <input data-bind="checked: excludeClosedAccs" type="checkbox" /></label>
    </p>
</div>
4

1 に答える 1

1

監視可能なブール値を追加し、それを使用してメソッドが呼び出されたかどうかを示します。

self.methodTouched = ko.observable(false);
self.search = function () {
    $.ajax({
        url: "/api/SearchCustomers",
        data: { id: self.custTerm },
        type: "GET",
        success: function (data) {
            self.customers(data);
        }
    });
    self.methodTouched(true);
}

その後:

<div data-bind="visible: methodTouched">
    <strong><span data-bind="text: customersToShow().length"></span></strong>
    <span data-bind="">customers</span> found.
    <p>
        <label>
            Exclude Closed Accounts:
            <input data-bind="checked: excludeClosedAccs" type="checkbox" /></label>
    </p>
</div>
于 2012-07-27T09:21:26.203 に答える