Knockout和viewModel的问题

时间:2016-08-17 17:19:21

标签: knockout.js devextreme

我的观点中有以下内容:

<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错误。

有人有想法吗?

由于 帕特里克

1 个答案:

答案 0 :(得分:0)

根据article

  

定义窗口小部件时,指定URL(字符串或对象)作为窗口小部件事件的处理程序(将URL指定给相应的选项或将其作为参数传递给on方法)。要获得更好的UI设计,请使用因单击窗口小部件或窗口小部件元素而触发的事件导航到视图。

因此,此事件处理程序onClick: 'SearchCustomer'会导航您进入“搜索客户”。视图没有定义。

如果要将viewModel.SearchCustomer方法用作onClick事件处理程序,只需从绑定字符串中删除引号:

<div data-bind="dxButton: { onClick: SearchCustomer, text: 'suchen' }"></div>

同样见fiddle