1

ボタンの値を空白のビューモデルにバインドしたいのですが、どうすればよいですか?私はこのフィドルを作成して、私が達成しようとしていることを示しました。

これが私のビューモデルです:

var CustomerSearchViewModel = {
    SearchType: ko.observable(""),
    SearchString: ko.observable("");
}

$(document).ready(function () {
    ko.applyBindings(CustomerSearchViewModel);
});

これが私がデータバインドをしようとしている方法です:

<button type="button" data-bind='value: SearchType, valueUpdate: "afterkeydown"' value="0" class="btn" data-toggle="button">Company Name</button>
4

2 に答える 2

4

これを解決する方法は複数ありますがvalue、ボタンでバインディングを使用しようとする方法は機能しません。

HTMLの変更を最小限に抑える最も簡単な解決策の1つは、clickバインディングを使用SearchTypeして、イベントハンドラーにを設定することです。

var CustomerSearchViewModel = {
       SearchType: ko.observable(""),
       SearchString: ko.observable(""),
       setSearchType : function(data, element)
       {           
           this.SearchType($(element.target).val());
       }
   };

次に、ボタンは次のようになります。

<button type="button" data-bind='click: setSearchType'
        value="0" class="btn" data-toggle="button">Company Name</button>

デモJSFiddle

于 2013-02-08T06:09:38.350 に答える
0

次のようにモデルを作成することをお勧めします。

function CustomerSearchViewModel = {
    SearchType: ko.observable(""),
    SearchString: ko.observable(""),
    UpdateSearch: function(data, event) {
        this.SearchType($(event.target).val());
        this.SearchString($(event.target).attr('searchString'));
    }
}

$(document).ready(function () {
    ko.applyBindings(CustomerSearchViewModel);
});

次に、バインディングにクリックイベントを追加してSearchString、と呼ばれるカスタム属性を使用してを更新しますsearchString。このようなもの:

<button type="button" data-bind='click: UpdateSearch' searchString="Company Name" class="btn" value="0" data-toggle="button">Company Name</button>
于 2013-02-08T06:33:41.220 に答える