Javascript 余烬应用程序就绪状态-应用程序未识别方法。

Javascript 余烬应用程序就绪状态-应用程序未识别方法。,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,我目前正在为一个使用ember数据和rails作为API的ember应用程序开发一个通知系统。我下面的当前设置正在尝试以设置的间隔调用通知控制器上的方法“refresh()”,以获取通知,但是该方法无法识别 下面是application.js文件: //= require jquery //= require jquery_ujs // require jquery.ui.all //= require handlebars //= require ember //= require ember

我目前正在为一个使用ember数据和rails作为API的ember应用程序开发一个通知系统。我下面的当前设置正在尝试以设置的间隔调用通知控制器上的方法“refresh()”,以获取通知,但是该方法无法识别

下面是application.js文件:

//= require jquery
//= require jquery_ujs
// require jquery.ui.all
//= require handlebars
//= require ember
//= require ember-data
//= require ember-auth
//= require_self
//= require auth
//= require company_backend
//= require ./wepay
//= require_tree .
//= stub polyfills/aight.js
//= stub polyfills/aight.d3.js
//= stub polyfills/mediaqueries.js
//= stub polyfills/pointerevents.js
//= stub polyfills/svg.js

window.CompanyBackend = Em.Application.create({
    ready: function() {
        setInterval(CompanyBackend.BusinessNotifications.refresh(), 2000);
    },
});
这是BusinessNotifications控制器:

CompanyBackend.BusinessNotifications = Em.ArrayController.extend({
    refresh: function() {
        alert('in refresh');
    },
});
是否有特定原因导致出现“无方法刷新”错误


谢谢你的帮助

之所以没有调用
刷新
方法,是因为没有任何东西实例化您的
业务通知
控制器

您可以尝试以下方法,使其更难操作:

CompanyBackend.businessNotifications = Em.ArrayController.create({
  refresh: function() {
    alert('in refresh');
  },
});

window.CompanyBackend = Em.Application.create({
  ready: function() {
    setInterval(CompanyBackend.businessNotifications.refresh(), 2000);
  }
});
更改很小,但很重要,您需要使用
.create
而不是
.extend
自己创建控制器的实例,并且还要注意小写名称,因为按照惯例,这表示实例而不是类

希望能有帮助