1

Ember.js 有一个很好的机制,可以将数据绑定到视图,在视图中设置触发事件处理,或者使用路由器。但我需要的是能够处理在已经创建的 HTML 代码中触发的事件(通过 PHP,服务器端)。让我给你看一个简单的例子。我有这个代码:

<a id="login" href="#">Login</a>

我需要能够路由/处理对此链接的点击,以便它进入我的 Ember 应用程序。我一直在寻找方法来做到这一点,但我找不到任何方法。

我怎样才能做到这一点?

4

1 回答 1

2

如果此链接位于 Ember 托管元素的子元素 DOM 元素内,则可以使用action帮助器:

<a id="login" href="#" {{action doSomeStuff}}>Login</a>

这个doSomeStuff事件将被发送到你的Ember.Router,它必须在适当的路由中实现处理程序:

...: Ember.Route.extend({

  doSomeStuff: function (router) {
    //...
  }
}),

如果链接超出了您的应用范围,您可以使用 JQuery 在与应用相关的元素上注册处理程序:

$('a#login').click(function () {
  App.router.transitionTo('the.route.path');
});

App.routerEmber 应用程序初始化时注入,您可以从任何地方访问它。

但是让我说,从路由器外部过渡并不是最佳实践。

最后但同样重要的是,您还可以将上下文传递给transitionTo调用。

于 2012-08-02T12:45:16.250 回答