Knockout.js用jquery进行数据绑定

use*_*774 0 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>
Run Code Online (Sandbox Code Playgroud)

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

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

Dia*_*sar 8

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

<button type="button" class="btn btn-primary" data-bind="click: doSomething">Create connection</button>
Run Code Online (Sandbox Code Playgroud)

你的文本框应该被声明为:

<input type="text" data-bind="value: doSomethingParameter" />
Run Code Online (Sandbox Code Playgroud)

在ViewModel文件中,必须声明一个可观察的"doSomethingParameter"并通过函数"doSomething"访问其值:

self.doSomethingParameter = ko.observable();

self.doSomething= function () {

    alert(self.doSomethingParameter());

};
Run Code Online (Sandbox Code Playgroud)