设定:
我有一个Ember应用程序,支持使用Imgur API上传图片。
我已经有一个工作路线和模板来处理任何Imgur ID,但我希望在上传新图像后转换到此路线(使用返回的Imgur ID)
以下是该应用的相关部分:http://jsbin.com/iGOXivEW/2/edit
问题:
答案 0 :(得分: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');
内。需要将操作放在操作对象中。