我有一个按钮,我想使用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()
。
然而,这不起作用,任何想法?
答案 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());
};