我正在切换到新的 ember 路由器,但有一个非常简单的问题 - 我如何确定我当前所在的路由?在你可以做类似的事情之前App.router.get('currentState')
,但这似乎不再起作用,因为路由器不再继承自StateManager
问问题
6554 次
3 回答
8
看看这个问题。
摘要:currentState
现在存储在currentPath
ApplicationController 的属性中。公认的解决方案是观察此属性以将其写入全局属性:
App = Em.Application.create({
currentPath: ''
});
ApplicationController : Ember.Controller.extend({
updateCurrentPath: function() {
App.set('currentPath', this.get('currentPath'));
}.observes('currentPath')
});
于 2013-04-10T10:00:28.237 回答
6
我可能会为此受到抨击,但在对此感到非常沮丧之后,我决定实施一个非常丑陋的解决方法。
我的用例试图获取当前帖子的 ID,因为我正在回复它。为我们当前的路线考虑这样的事情:
“...#/post/12345”
我的解决方法(有史以来最丑陋的代码):
var currentId = window.location.hash.split('/')[2];
App.Message.createRecord({
content: message,
inReplyTo: currentId
}).get('transaction').commit();
于 2013-04-13T01:57:45.347 回答
1
在控制器中,我可以使用下面的代码获取当前路由名称。祝你好运
this.get("currentRouteName")
于 2014-09-03T21:07:45.733 回答