Мне интересно, как лучше всего контролировать поведение компонента.Выполнение функций на компоненте emberjs
В моем случае у меня есть компонент {{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')
На мой взгляд, выше решение очень безвкусный и подробный и должен быть лучший способ достичь этого.
Являются ли наилучшие практики для этого сценария?
OK это имеет смысл. Поэтому я должен быть привязан к чему-то вроде этого {{stop-watch controls = stopWatchControls}} '. Где бы вы поместили модель «контроль-контроль-контроль»? В папке моделей? Это как-то связано с компонентом. – jax
Подумайте о модели как о самом секундомере. Вы можете бросить модель вокруг, иметь несколько экземпляров и т. Д. И компонент - это просто его интерфейс модели. У вас может быть несколько интерфейсов, например. г. полный и компактный. –
Вся логика и поведение должны быть в модели, компонент должен иметь только логику, связанную с визуализацией (например, позицию аналоговой часовой стрелки), а не счет времени. И да, вы можете поместить модель в папку моделей. –