View EmberJS:如何从视图而不是路由/控制器处理操作
今天,我有一个惊人的发现:视图上引用的操作是由它们的路径处理的,而不是由引用它的视图处理的。例:View EmberJS:如何从视图而不是路由/控制器处理操作,view,ember.js,ember-router,View,Ember.js,Ember Router,今天,我有一个惊人的发现:视图上引用的操作是由它们的路径处理的,而不是由引用它的视图处理的。例: <a href="#" {{action edit}}>Edit this</a> 编辑操作必须在路线中定义,而不是在视图中定义。在视图负责处理此类事件之前,我没有使用路由器,对此我非常高兴 请大家: 向我解释为什么路线必须处理事件,以及这有什么好处 请告诉我如何在处理此类行动/事件时将控制权交还给视图 将目标设置为视图 <a href="#" {{action
<a href="#" {{action edit}}>Edit this</a>
编辑操作必须在路线中定义,而不是在视图中定义。在视图负责处理此类事件之前,我没有使用路由器,对此我非常高兴
请大家:
向我解释为什么路线必须处理事件,以及这有什么好处
请告诉我如何在处理此类行动/事件时将控制权交还给视图
将目标设置为视图
<a href="#" {{action edit target="view"}}>Edit this</a>
如果您的操作在控制器中,则使用
<a href="#" {{action edit}}>Edit this</a>
默认目标是指视图的控制器
我建议您仔细阅读以下参考资料:
根据上述参考资料,我想提出一些要点
在典型的Ember.Router支持的应用程序中,通过使用{{outlet}}助手管理视图,操作将转发到当前控制器
如果控制器中未定义该操作,则当前路由是有目标的。您好,谢谢您的回复,它确实有效!!!路由器默认控制有什么原因吗?这应该是一个好的做法吗?我真的不知道;I don’我不知道路由器是默认路由器的原因,请查看更新答案中的链接再次感谢,我会仔细检查所有内容,并尝试找到最佳方法。顺便说一句,如果该操作仅针对用户界面,那么将该操作仅显示在视图中而不是控制器或路由器中是有意义的,尽管它最终会在那里寻找“操作”,如果它是一个旁注,那么如果该操作只是特定于UI的,那么它不应该只在视图中处理,而不是将默认目标作为控制器吗?