Kendo-Knockout:无法在模板中调用函数

时间:2013-10-07 17:09:09

标签: javascript knockout.js kendo-ui

我想调用onHover函数,但没有成功。我设法做到这一点的唯一方法是,如果函数是全局的,但这不是我需要的。

我要做的是onMouseOver下拉列表的某些元素,以获取其值并在我的viewmodel中对其执行某些操作。

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());

fiddler:http://jsfiddle.net/QZWPR/30/

1 个答案:

答案 0 :(得分:0)

问题在于你的功能位置。如果你要改变

onMouseOver = \'onHover(this)\'

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

然后我希望你会看到你的警报。

OR

您需要在跨度

上使用事件绑定
<span data-bind="event: { mouseover: onHover}">