2014-10-01 48 views
0

我有一个EmberJS应用程序。我想做一个像全局变量/函数的东西,它会检测用户是从桌面计算机还是从移动设备访问应用程序。 在主控制器(控制器/的application.js)我有一个这样的代码:从run.schedule获取控制器var

Ember.Controller.extend({ 
     currentUser: 0, 
     lastRemoteId: 0 
    }) 

我需要添加一个变量或函数是这样的:

Ember.Controller.extend({ 
     ..., 
     isMobile: function(){ 
      [code which detects if user visited from mobile device or not] 
     } 
    }) 

在主视图(视图/应用.js)在didInsertElement里面我想得到这个isMobile var。当我尝试执行this.controllerFor('application')时,我收到一个错误:“未定义不是函数”。像我这样做是否正确?

回答

1

应用程序控制器被设置为应用程序视图上的属性,您可以使用getter访问它。

var appController = this.get('controller'); 
0

问题是固定的是这样的: 我添加代码到控制器:

Ember.Controller.extend({ 
    ... // some properties, 
    mobileDetect: function() { 
     return new MobileDetect(window.navigator.userAgent); 
    }.property(), 
    actions: { 
     ... 
    } 
} 

而且内部didInsertElement我有这样的代码:

this.get('controller.mobileDetect') 

我将收到mobileDetect对象并能够执行其方法。目前它的工作原理是