2013-11-28 38 views
0

我知道你可以有一個不同的模板,它使用基於條件的不同事件處理程序,但有沒有辦法在淘汰賽中使事件處理程序名稱變爲動態?基於條件挖掘的動態事件處理程序

例如:

<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

是的,你可以。 event綁定接受一個對象,並且該對象可以動態構造。

<button data-bind="event: TouchOrClick(SomeMethod)"></button> 

的方法:

self.TouchOrClick= function(method) { 
    return 'ontouchstart' in document.documentElement ? 
     { 'touchstart' : method } : { 'click' : method }; 
};