Ember.js在处理View事件后转换到路由

pat*_*ood 2 javascript ember.js

建立:

我有一个Ember应用程序,支持使用Imgur API上传图像.

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

以下是该应用程序的相关部分:http://jsbin.com/iGOXivEW/2/edit

问题:

  1. 这是正确使用View以及处理更改事件的正确方法吗?
  2. 如何从View转换到'imgur'路线并将新的Imgur ID传递给它?

mel*_*elc 5

你在视图里面处理ui事件很好.您可以通过移动将图像发布到控制器的代码,从视图逻辑中分离发送到igur或其他地方的逻辑.

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

this.controller.transitionToRoute('imgur', imgurId);

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

transitionToRoute('imgur', imgurId);

(http://emberjs.com/api/classes/Ember.Controller.html#method_transitionToRoute)

设计方面,无论发布图像的逻辑在哪里,如果您将转换逻辑移动到公共位置(即控制器,甚至更好地路径),在特定操作(即已完成)内,您可能会发现有用.

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

(http://emberjs.com/guides/views/handling-events/)