我目前正致力于使用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');
},
});
是否有一个特定的原因我会得到一个没有方法'刷新'的错误?
感谢您的帮助!
答案 0 :(得分: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
来创建控制器的实例,并且还要注意小写的名称,因为这按照惯例表示实例而不是一个班级。
希望它有所帮助。