1
我想知道什麼是控制組件上行爲的最佳方法。我有個{{stop-watch}}
組件。在emberjs組件上運行函數
我想start
,stop
和reset
組件通過使用{{stop-watch}}
在他們的模板中的路線。啓動和重置功能應該允許我以某種方式傳遞秒數來運行。
如果組件只能真正支持綁定而不是執行行爲的能力,這怎麼能做到呢?
這是我能想到的唯一辦法。在這種情況下; isStarted,isStopped和isReset是布爾變量,我會切換它們來控制組件。
{{stop-watch start=isStarted stop=isStopped reset=isReset timeout=timoutSeconds}}
切換這樣爲每個屬性在控制器綁定
this.set('isStarted', !this.get('isStarted'));
遵守這樣爲每個屬性在組件
startUpdated : function() {
//start the timer
}.property('start')
我認爲上述的解決方案是非常不雅和詳細而且必須有更好的方法來實現這一點。
這種情況下的最佳做法是?
確定這是有道理的。所以我應該綁定到這樣的'{{stop-watch controls = stopWatchControls}}'。你會在哪裏放置'stop-watch-controls'模型?在模型文件夾中?它以某種方式屬於該組件。 – jax
將模型視爲秒錶本身。你可以折騰模型,有多個實例,等等。而組件僅僅是模型的接口。你可以有多個接口, G。完整而緊湊。 –
所有的邏輯和行爲應該在模型中,組件應該只有與可視化相關的邏輯(例如模擬時鐘的位置),而不是時間計數的東西。是的,您可以將模型放入模型文件夾中。 –