从url字符串中查找现有路由

时间:2014-06-17 08:30:34

标签: javascript ember.js

我有一个促销块,其中包含多个图片和链接。其中一些是通往我的网站,一些是外部资源。目前,我使用这段代码进行此链接。

<a {{ bindAttr href="link" }}><img {{ bindAttr src="image" }} /></a>

然而,这实际上重新加载了一个页面,我不希望这样,以防我在我的网站内导航。此外,如果我们遇到一些不存在的路线,如果有拼写错误或其他原因,它可能意味着破坏我的应用程序。 所以,我要做的是添加一个动作,检查路由是否存在,然后做一个正确的transitionTo,如果路由不存在,做某种默认的回退,但我不要我不知道怎么做这个检查。有没有人做过类似的事情?

P.S。我知道transitionTo可以接受网址作为参数,但是Ember文档说

It is also possible to pass a URL (a string that starts with a /). 
This is intended for testing and debugging purposes 
and should rarely be used in production code.

如果路线不存在,则无法防止过渡。

1 个答案:

答案 0 :(得分:0)

您可以拥有一条默认路线,这将是一个“全能”的路线。您将在路由器中指定的内容如下:

this.route('badRoute', {path: '/*pathname' });
宣布完所有路线后,在底部

。如果您的路线都不匹配,则会匹配,您可以重定向或转换到该路线时的任何路线。