2014-11-21 64 views
1

我想将操作添加到{{link-to}}帮助程序。 例如,在模式组件中,我使用{{link-to}}来打开一条新路线。当用户点击链接时,我想通过一个动作关闭模式。链接上的执行操作 -

一个可能的解决方案是缠绕在{{link-to}}一个动作:

<button {{action "close"}}> 
    {{#link-to 'register'}}Registreer{{/link-to}} 
</button> 

这是最好的/干净的解决方案可能吗?或者我可以添加一个动作到链接到助手?

另一种方法可能是过渡和关闭自定义操作,但这种方法是不是 可用于在组件中使用:

// template.hbs 

<button {{action "link" "register"}}>Registreer</button> 

... 

// template-controller.js 
actions: { 
    link: function(routeName) { 
    this.transitionToRoute(routeName); 
    this.close() 
    } 
} 
+2

的文档我个人认为,在这个词的真正意义上的组件没有业务做路由相关的东西。它应该与外部世界(它的调用环境)和简洁的行为进行交流,然后由调用者在更广泛的应用环境中转化为有意义的东西,无论是路由转换还是其他任何东西。 – 2014-11-21 16:40:55

+0

如果链接到逻辑位于组件的yield部分内,您是否意见会改变? – Hoetmaaiers 2014-11-21 22:09:04

回答

2

你应该做的拆卸操作,如willDestroyElement内关闭模式盒您目前的事件view

通过这样做,你可以只需{{link-to 'register'}},让你的view(template-view.js)管理一个模式关闭与否的事实。

结帐willDestroyElement HERE