Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
View EmberJS:如何从视图而不是路由/控制器处理操作_View_Ember.js_Ember Router - Fatal编程技术网

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的,那么它不应该只在视图中处理,而不是将默认目标作为控制器吗?