我知道你可以有一个不同的模板,它根据一个条件使用不同的事件处理程序,但有没有办法在knockout中使事件处理程序名称动态化?
例如:
<button data-bind="event : { EventToUse() : SomeMethod }"></button>
有一个像这样的方法:
self.EventToUse = function(){
return 'ontouchstart' in document.documentElement ? 'touchstart' : 'click';
};
上述绑定语法无效,因此它不是解决方案,只是我的目标草图
我再次知道有这样的事情:
self.TemplateToUse = function(){
return 'ontouchstart' in document.documentElement ? 'touch-Template' : 'desktop-Template';
};
并将其绑定到模板加载的容器。
我发现是否可以使用较少的击键来完成。
非常感谢
答案 0 :(得分:0)
是的,你可以。 event
绑定接受一个对象,该对象可以动态构造。
<button data-bind="event: TouchOrClick(SomeMethod)"></button>
方法:
self.TouchOrClick= function(method) {
return 'ontouchstart' in document.documentElement ?
{ 'touchstart' : method } : { 'click' : method };
};