2013-11-21 38 views
2

安装后:Ember.js过渡到路由处理查看活动

我已经得到了支持使用Imgur API图片上传灰烬应用程序。

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

下面是相关的部分http://jsbin.com/iGOXivEW/2/edit

问题:应用程序的

  1. 这是正确使用查看和处理更改事件的正确方法?
  2. 如何从视图切换到“imgur”路线并将新的Imgur ID传递给它?
+0

的[ember.js从视图或控制器与transitionTo挣扎](可能重复http://stackoverflow.com/questions/13484238/ember-js-struggling-with-transitionto-from-视图或控制器) – givanse

回答

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/

+0

如果您使用ember-cli创建应用程序,通过视图,您需要执行this.get('controller')。transitionToRoute(..)将工作 – inquisitive