Ember: укажите целевое представление действия для помощника действия, кроме содержащего или родительского представления

В Ember, если вы хотите, чтобы действие обрабатывалось представлением, это легко сделать, используя

<button {{action 'something' target='view'}}>
`{{view App.targetView}}` // this is the view in which the 'something' action ought to be handled

Если вы хотите, чтобы parentView справился с этим, то target='view' заменяется на target='parentView'

Справедливо, моя проблема в том, что я хочу, чтобы childView обрабатывал и просто указывал выходы childView

"Невозможно прочитать свойство" отправить "неопределенное"

Я мог бы указать здесь имя вида, например:

target='targetView'

где

{{view App.targetView viewName="targetView"}}

это не сработало. Ни один не сделал

target ='views.targetView' nor 'childViews.targetView'

Пожалуйста, не советуйте мне изменять семантическую структуру моего приложения, указав, что кнопка с этим действием должна быть в шаблоне App.targetView, потому что для меня это взлом и срыв с семантической структурой моего приложения.

Что мне нужно знать, так это как я могу использовать целевое свойство для указания конкретного представления, а не только содержащего или родительского представления:)?

1 ответ

Решение

Честно говоря, мой инстинктивный ответ: "Э-э, не делай этого". Но я собираюсь приостановить неверие и оговорить, что у вас есть веская причина для этого.

Причина, по которой ваш подход не сработал, заключается в том, что target Путь свойства оценивается в контексте шаблона (который по умолчанию является контроллером). Решение: используйте view Ключевое слово в пути свойства и цепочка viewName целевого представления.

например

<button {{action "foo" target="view.targetView"}}>Click me</button>
{{view App.TargetView viewName="targetView"}}

http://emberjs.jsbin.com/aGagORaz/1/edit?html,js,output

Другие вопросы по тегам