1

我目前正在使用 ember-data 和 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');
    },
});

是否有特定原因我会收到没有方法“刷新”错误?

谢谢您的帮助!

4

1 回答 1

0

不调用该方法的原因refresh是因为没有实例化您的BusinessNotifications控制器。

你可以试试这个让它工作起来很艰难:

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

window.CompanyBackend = Em.Application.create({
  ready: function() {
    setInterval(CompanyBackend.businessNotifications.refresh(), 2000);
  }
});

更改很小,但至关重要,您需要自己创建控制器的实例,.create而不是.extend注意小写的名称,因为按照惯例,这表示实例而不是类。

希望能帮助到你。

于 2013-10-14T17:47:28.507 回答