我工作的幾個knockout.js在我的業餘時間一些當前/未來的項目我會做結合處理的最佳方法,我想知道什麼是最好的方法傳遞多個參數是。 Link to example bindings(而不是用於生產)什麼是將數據傳遞到自定義綁定處理
例如,我有一個 「cssAnimateVisible」 結合處理,看起來像這樣:
HTML:
<div data-bind="cssAnimateVisible: isCssAnimateVisible">Animation</div>
的Javascript:
self.isCssAnimateVisible = ko.observable(false);
我可以把可觀察的關閉和打開,它會發揮WHA Tever默認動畫我希望它能夠在該元素上播放。大多數情況下,這個工作很好,很棒。但是,如果我想更改默認的動畫,其他的東西比在進出彈跳我必須這樣做:
正如你所看到的,我傳遞了更多變數,因爲我不希望爲此特定元素使用默認動畫。這種方法是我目前在我的項目網站上,但我不喜歡傳遞一個名爲「可觀察」的變量,因爲這似乎使html控件膨脹起來,所以我將其縮小到這個範圍:
<div data-bind="cssAnimateVisible: isCssAnimateVisible, animation: 'flipInY', animationOut: 'flipOutY'">Animation</div>
正如你所看到的,它比上述短了很多,但它確實需要其他的參數去「cssAnimateVisible」的背景下,這可能是一個潛在的不利因素,由於命名衝突與其他自定義綁定有人可能的。
而且,我想到了剛剛傳遞變量是這樣的:
<div data-bind="cssAnimateVisible: { isCssAnimateVisible, 'flipInY', 'flipOutY' }">Animation</div>
這使得即使有知道的參數的順序中傳遞的代價越短
最後,我想到剛剛在animate.css庫創造了許多不同的結合處理程序,爲各種動畫像這樣:
<div data-bind="cssBounceVisible: isCssAnimateVisible1">Animation</div>
<div data-bind="cssFlipVisible: isCssAnimateVisible2">Animation</div>
<div data-bind="cssLightSpeedVisible: isCssAnimateVisible3">Animation</div>
這種方法增加了我的項目中的代碼行並沒有給予足夠的靈活性。儘管如此,它可能是最短的數據綁定。
有誰知道處理這個最好的方法?我想在我的方法中保持一致,而不是任何事情。謝謝!