我想知道控制组件行为的最佳方法是什么。
在我的情况下,我有一个{{stop-watch}}
组件。
我希望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')
在我看来,上述解决方案非常不优雅且冗长,必须有更好的方法来实现这一目标。
此方案的最佳做法是什么?
答案 0 :(得分:1)
你应该拥有一个拥有控制状态的状态和方法的模型。
您在路线中设置了模型的实例,然后您就可以在控制器和秒表组件中控制它。
组件将根据模型的属性自动更新其外观,并且能够通过组件上的操作调用模型上的方法。