2013-10-07 2 views
0

Я хочу назвать функцию onHover, но без suceess. Единственный способ, которым я смог это сделать, - это глобальная функция, но это не то, что мне нужно.Kendo-Knockout: Невозможно вызвать функцию в шаблоне

То, что я пытаюсь сделать, это onMouseOver какого-либо элемента выпадающего списка, чтобы принять его значение и сделать что-то с ним в моей модели просмотра.

HTML:

<div> 
    <div data-bind="with: myInnerViewModel"> 
     <input type="text" data-bind="kendoDropDownList: {data: myData, value:   myValue,template:'<span onMouseOver = \'onHover(this)\' title=\'${data}\'>${data}</span>'}"  /> 
    <div>  
</div> 

JS:

var myViewModel = function() { 

    this.myInnerViewModel = { 

     myData : [1, 2 , 3], 
     myValue : ko.observable(1), 
     onHover : function(e){ 
      alert(1);  
     } 
    }; 
}; 


ko.applyBindings(new myViewModel()); 

скрипача: http://jsfiddle.net/QZWPR/30/

ответ

0

Проблема заключается в месте вашей функции. Если вы изменили

onMouseOver = \'onHover(this)\' 

в

onMouseOver = \'myViewModel.myInnerViewModel.onHover(this)\' 

то я ожидаю, что вы увидите ваше предупреждение.

ИЛИ

вам нужно использовать связывание на вашем пролете

<span data-bind="event: { mouseover: onHover}"> 
+0

Нет события, это не работает. Пожалуйста, см. Скрипач, я приложил. Я пытался использовать $ parent, но он также не работает. – Mdb

Смежные вопросы