Events 如何在Ember.js中直接将事件绑定到现有HTML,而不使用任何类型的视图?

Events 如何在Ember.js中直接将事件绑定到现有HTML,而不使用任何类型的视图?,events,binding,ember.js,Events,Binding,Ember.js,js具有将数据绑定到视图、在视图中设置触发事件处理或使用路由器的强大机制。但我需要的是能够处理在已经创建的HTML代码(由PHP,服务器端)中触发的事件。 让我给你看一个简单的例子。我有以下代码: 我需要能够路由/处理点击这个链接,以便它进入我的余烬应用程序。 我一直在寻找这样做的方法,但我找不到任何方法 如何执行此操作?如果此链接位于作为Ember托管元素的子元素的DOM元素内,则可以使用操作帮助程序: <a id="login" href="#" {{action doSomeStu

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

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


如何执行此操作?

如果此链接位于作为Ember托管元素的子元素的DOM元素内,则可以使用
操作
帮助程序:

<a id="login" href="#" {{action doSomeStuff}}>Login</a>
如果链接不在应用程序的范围内,则可以使用JQuery在应用程序相关元素上注册处理程序:

$('a#login').click(function () {
  App.router.transitionTo('the.route.path');
});
App.router
在Ember应用程序初始化时被注入,您可以从任何地方访问它

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


最后但并非最不重要的一点是,您还可以将上下文传递给
转换到调用。

如果按Ember托管元素表示的是Ember视图,则不,此链接不存在。我没有任何余烬的观点。所以,如果您能在这里详细介绍一下,我会很高兴。您是说您有一个没有UI的Ember应用程序?或者您希望将Ember应用程序作为现有应用程序的一部分插入?我希望将处理程序绑定到现有的html元素,这些元素来自服务器端php。我无法更好地解释这一点。但是你有没有可能定制/丰富页面内容?至少你添加了JS。。。如果你的应用程序没有显示任何内容,那么它的用途是什么?还是你的应用程序只显示了页面的一小部分?我更新了答案,试图尽可能地向你提供信息,但我不了解你的需求。希望这会有帮助。。。
$('a#login').click(function () {
  App.router.transitionTo('the.route.path');
});