Knockout.js与jquery的数据绑定

时间:2014-05-07 08:35:35

标签: jquery knockout.js

我有一个按钮,我想使用knockout绑定到VM中的方法。我使用以下代码

<button type="button" class="btn btn-primary" id="cmdCreateConnection" 
        data-bind="click: function(data, event) {
                               createConnection($('#connectuser').val(), 
                                                'param2', data, event)
                          }">Create connection
</button>

该方法的一个参数是输入文本框的值,因此选择器$('#connectuser').val()

然而,这不起作用,任何想法?

1 个答案:

答案 0 :(得分:8)

通过在按钮声明中添加id并通过JQuery访问文本框值,您实际上违反了KnockoutJS背后的主要概念和双向数据绑定概念。相反,您的按钮声明应该是:

<button type="button" class="btn btn-primary" data-bind="click: doSomething">Create connection</button>

您的文本框应声明为:

<input type="text" data-bind="value: doSomethingParameter" />

在ViewModel文件中,您必须声明一个可观察的&#34; doSomethingParameter&#34;并通过函数&#34; doSomething&#34;:

访问其值
self.doSomethingParameter = ko.observable();

self.doSomething= function () {

    alert(self.doSomethingParameter());

};