Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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

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
Javascript 处理视图事件后,Ember.js转换为路由_Javascript_Ember.js - Fatal编程技术网

Javascript 处理视图事件后,Ember.js转换为路由

Javascript 处理视图事件后,Ember.js转换为路由,javascript,ember.js,Javascript,Ember.js,设置: 我有一个余烬应用程序,支持使用imgurapi上传图像 我已经有了一个工作路径和模板来处理任何Imgur ID,但是我想在上传新图像后转换到这个路径(使用返回的Imgur ID) 以下是应用程序的相关部分: 问题: 这是视图的正确使用和处理更改事件的正确方法吗 如何从视图转换到“imgur”路径并向其传递新的imgur ID 您可以在视图内部处理ui事件,这很好。通过移动将图像发布到控制器的代码,可以将发送到igur或其他地方的逻辑与视图逻辑分开 可以通过从视图调用来完成转换 this.

设置:

我有一个余烬应用程序,支持使用imgurapi上传图像

我已经有了一个工作路径和模板来处理任何Imgur ID,但是我想在上传新图像后转换到这个路径(使用返回的Imgur ID)

以下是应用程序的相关部分:

问题:

  • 这是视图的正确使用和处理更改事件的正确方法吗
  • 如何从视图转换到“imgur”路径并向其传递新的imgur ID

  • 您可以在视图内部处理ui事件,这很好。通过移动将图像发布到控制器的代码,可以将发送到igur或其他地方的逻辑与视图逻辑分开

    可以通过从视图调用来完成转换

    this.controller.transitionRoute('imgur',imgurId)

    或者如果你把所有东西都移到控制器上

    transitionRoute('imgur',imgurId)

    ()

    就设计而言,无论张贴图像的逻辑走到哪里,如果您将转换逻辑移动到一个公共位置,即控制器,或者更好地移动到路线,在一个特定的操作(即完成)内,您可能会发现它很有用

    这样,您现在就可以始终在何处维护处理当前路线导航的逻辑。要从视图或控制器调用控制器或路由中的操作,您需要使用函数
    send
    ,即内部视图
    this.controller.send('completed')
    ,内部控制器
    this.send('completed')。动作需要放在动作对象中


    ()

    如果您使用ember cli创建应用程序,则需要通过视图执行此操作。get('controller')。TransitionRoute(..)可以工作