Ember.js:从数据库中提取时的内部超链接

时间:2015-09-28 16:43:30

标签: ember.js

我的数据库有时包含我的Ember.js应用程序中其他路由的超链接(常规HTML" a"标记)。问题是我不知道怎么做,所以这些链接将在Ember中转换,而不必重新加载页面。有没有办法解决这个问题?

示例:我有一个用户创建的博客(/博客)帖子。此博客文章将包含指向该网站其他部分的链接,例如联系人(/ contact)。如何在博客文章中获取链接以通过Ember过渡,而不是每次点击链接时重新加载应用程序?

编辑:还没有找到一个简单的方法来解决Ember中的这个问题。我认为这将是一个比它更常见的问题。我确实找到了使用jQuery解决问题的非常基本的方法。我抓住所有" a"在内容区域内单击并通过try / catch块运行它。如果它无法通过Ember过渡,则会抛出错误,这意味着我们可以使用传统的Javascript进行路由。这可能远非最佳,但对我来说已经足够了。

Ember.$('.ember-linkify a').click (e) ->
  e.preventDefault()
  a = $(this).attr 'href'
  try
    @transitionTo a
  catch error
    window.location.href = a

1 个答案:

答案 0 :(得分:0)

您需要存储路由名称而不是存储HTML元素,因为如果我理解你存储好:

<a href="/contact"></a>

而不是:

contact

因此,如果您重写逻辑以仅存储路由名称,则可以使Ember处理该路径名。

如果您有变量存储路由名称(在您的示例中为/contact)并且它是product的成员,那么您可能会像这样访问它:

product.link

您可以将此字符串传递给{{link-to}}帮助程序,这将导致正确的Ember链接:

{{#link-to product.link}}Link{{/link-to}}