我有一个EmberJS应用程序。我想制作类似全局变量/函数的东西,它将检测用户是否从台式计算机或移动设备访问了应用程序。 在主控制器(controller / application.js)中,我有一个这样的代码:
Ember.Controller.extend({
currentUser: 0,
lastRemoteId: 0
})
我需要添加一个像这样的变量或函数:
Ember.Controller.extend({
...,
isMobile: function(){
[code which detects if user visited from mobile device or not]
}
})
在didInsertElement里面的主视图(views / application.js)中我想得到这个isMobile var。当我尝试执行this.controllerFor('application')
时,我收到一个错误:" undefined不是函数"。这样做是否正确?
答案 0 :(得分:1)
应用程序控制器在应用程序视图中设置为属性,您可以使用getter访问它。
var appController = this.get('controller');
答案 1 :(得分:0)
问题是这样解决的: 我在控制器中添加了代码:
Ember.Controller.extend({
... // some properties,
mobileDetect: function () {
return new MobileDetect(window.navigator.userAgent);
}.property(),
actions: {
...
}
}
在didInsertElement
内,我有这样的代码:
this.get('controller.mobileDetect')
我将收到mobileDetect
个对象并能够执行其方法。现在它可以工作