与淘汰赛和视图模型
从来就存在的问题得到了在我的观点如下:与淘汰赛和视图模型
<div data-bind="dxTextBox: { onFocusIn: onEnterSearch, placeholder: 'suche...', showClearButton: true , value: ''}"></div>
<div data-bind="dxButton: { onClick: 'SearchCustomer', text: 'suchen' }" style="width:100%;"></div></div>
,这在我的js文件:
function DoSearch() { alert('DoSearch');}
function clearSearch() {
alert('clearSearch');
}
var viewModel = {
//// Put the binding properties here
SearchCustomer: DoSearch,
onEnterSearch: clearSearch
};
return viewModel;
但是现在,当我关注文本框,我收到“clearSearch”警报,并点击按钮,我收到了一个404错误。
有没有人有想法?
由于 帕特里克
根据本article:
当定义一个插件,指定一个URL(字符串或对象),作为微件的事件处理程序(该URL分配给对应的选项或将其作为参数传递给on方法)。为了获得更好的UI设计,请使用点击小部件或小部件元素后触发的事件导航到视图。
因此,此事件处理程序onClick: 'SearchCustomer'
将您导航到未定义的'SearchCustomer'视图。
如果你想使用viewModel.SearchCustomer
法作为onClick
事件处理程序,只需从绑定字符串中删除该帖符号:
<div data-bind="dxButton: { onClick: SearchCustomer, text: 'suchen' }"></div>
看到这个fiddle,以及。
就是这样!谢谢! – user2849380
欢迎您! – Sergey
A)你的代码片段不会产生任何东西。 B)如果你在这样的功能上出现404错误,它可能意味着表单正在提交。我对你正在使用的控件不熟悉,但我的猜测是,如果你检查你的html,你会在其中看到一个表单,而dxButton可能会创建一个提交按钮,导致表单被触发。如果您可以修改ko.customBindings,可以将按钮更改为非提交按钮。否则,将event.preventDefault和event.stopPropagation添加到doWork方法中,假设事件是您可以在参数中访问的内容。 – QBM5