我正在尝试创建Ember.Route
,我需要相应的模板来了解当前路径的路径。我知道那里有ApplicationController.currentPath
,但我的路线是setupController()
我可以获得ApplicationController
,但如果我获得currentPath
属性,则会返回undefined
。< / p>
为什么会这样?
这是我的代码(简化为显示问题):
AxpoEM = Ember.Application.create({});
AxpoEM.Router.map(function() {
this.route('something', { path: '/'})
});
AxpoEM.SomethingRoute = Ember.Route.extend({
setupController: function(controller, model) {
var path = this.controllerFor('application').get('currentPath');
controller.set('path', path);
}
});
这是HTML:
<script type="text/x-handlebars" data-template-name="something">
Path: {{path}}
</script>
这是一个(非)工作小提琴:
答案 0 :(得分:1)
我使用ApplicationController
SomethingController
注入needs
AxpoEM.SomethingController = Ember.ObjectController.extend({
needs: ['application'],
path: function() {
return this.get('controllers.application.currentPath');
}.property('controllers.application.currentPath')
});
答案 1 :(得分:0)
我找到了解决方案。无需访问ApplicationController
,每条路线都有routeName
属性:
AxpoEM.SomethingRoute = Ember.Route.extend({
setupController: function(controller, model) {
var path = this.get('routeName');
controller.set('path', path);
}
});