Setup:
我有一个 Ember 应用程序,支持使用 Imgur API 上传图像。
我已经有一个工作路线和模板来处理任何 Imgur ID,但我想在上传新图像后转换到此路线(使用返回的 Imgur ID)
这是该应用程序的相关部分:http://jsbin.com/iGOXivEW/2/edit http://jsbin.com/iGOXivEW/2/edit
问题:
- 这是视图的正确使用以及处理更改事件的正确方法吗?
- 如何从视图转换到“imgur”路线并向其传递新的 Imgur ID?
您可以在视图内处理 ui 事件,这很好。您可以通过将发布图像的代码移动到控制器,将发送到 igur 或其他地方的逻辑与视图逻辑分开。
可以通过从视图调用来完成转换,
this.controller.transitionToRoute('imgur', imgurId);
或者如果你把所有东西都移到控制器上,
transitionToRoute('imgur', imgurId);
(http://emberjs.com/api/classes/Ember.Controller.html#method_transitionToRoute 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/ http://emberjs.com/guides/views/handling-events/)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)