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 进行最少修改的最简单的解决方案之一是使用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 回答