Я знаю концепцию Data Down/Actions Up, но я столкнулся с ситуацией, когда я не знаю, как это сделать с DDAU. Я искал на разных форумах и блогах, как это сделать, но это не соответствует моему запросу.EMBERJS: Как вызвать действие в дочернем компоненте?
У меня есть контроллер с двумя компонентами. На первом компоненте у меня есть заголовок с кнопкой. На втором компоненте у меня есть форма.
Когда кнопка нажата, действие запускается триггером и улавливается контроллером, но как я могу уведомить второй компонент «щелчок» на кнопке на первом компоненте.
Простым решением было бы включить первый компонент во второй, но я не могу этого сделать, потому что каждый компонент используется во многих разных ситуациях.
* Вы не делаете это *! Это просто против шаблона DDAU. Почему второй компонент даже должен знать об этом действии? Напишите этот код в контроллере. Я думаю, что у нас есть [XY-Problem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). – Lux
Почему бы не использовать компоненты, если он не может выполнить то, что должен выполнить компонент, и переместить эту часть поведения внутри контроллера только для того, чтобы быть совместимым с DDAU. Мои компоненты ** нуждаются в **, чтобы узнать о действии, потому что действие должно инициировать изменения (например, обновление от внешнего запроса ajax, сохранения, ...). Это полностью отвечает моей компоненте и не следует делегировать ее. Кроме того, я не хочу дублировать код контроллера на каждом контроллере, используя этот компонент. – luke77
Ваш первый пример - запрос AJAX - это то, чего вы, вероятно, не должны делать в компоненте. Если вы обычно используете этот компонент формы и компонент burton бок о бок, вероятно, лучше всего создать третий компонент, содержащий два других. Что ваш код может сидеть в этом окружающем компоненте. Может быть, вы могли бы присоединиться к слабину, чтобы обсудить это дальше. – Lux