2016-08-17 3 views
0

I've получил следующее, на мой взгляд:Проблемы с Knockout и ViewModel

<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», а onclick на кнопке, я получаю ошибку 404.

Есть ли у кого-нибудь идеи?

Благодаря Патрик

+2

A) Ваш фрагмент кода ничего не производит. B) Если вы получаете ошибку 404 для такой функции, она, вероятно, означает отправку формы. Я не знаком с элементами управления, которые вы используете, но я предполагаю, что если вы проверите свой html, вы увидите форму где-нибудь в нем, и dxButton, вероятно, создаст кнопку отправки, которая вызывает пожар. Если вы можете изменить ko.customBindings, сделайте это, чтобы изменить кнопку на кнопку без отправки. Else, add event.preventDefault и event.stopPropagation для метода doWork, предполагающего событие, - это то, к чему у вас есть доступ в аргументах. – QBM5

ответ

0

По этим article:

При определении виджета, указать URL (строку или объект) в качестве обработчика для события виджета (назначить URL в соответствующем или передать его как параметр методу on). Для лучшего дизайна пользовательского интерфейса перейдите к представлениям, используя события, которые срабатывают в результате нажатия на виджет или элемент виджетов.

Итак, этот обработчик событий onClick: 'SearchCustomer' переводит вас в режим «SearchCustomer», который не определен.

Если вы хотите использовать метод viewModel.SearchCustomer в качестве обработчика события onClick, просто удалите символ цитаты из связующей строки:

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

Смотрите эту fiddle, а также.

+0

Вот и все! Спасибо! – user2849380

+0

Добро пожаловать! – Sergey