我正在使用ember-data和rails作为API构建Ember应用程序。我正在尝试从application.js文件中调用BusinessNotifications模型上的find方法。在进行初始调用时,我得到“没有方法'找''错误。
我的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() {
var BusinessNotifications = CompanyBackend.BusinessNotification.find();
setInterval(function() {
BusinessNotifications.reload();
}, 2000);
},
});
我的模特:
CompanyBackend.BusinessNotification = DS.Model.extend({
notification: DS.attr('string'),
timeSeen: DS.attr('integer'),
active: DS.attr('boolean'),
type: DS.attr('string'),
});
My Serializer:
class BusinessNotificationSerializer < BaseSerializer
attributes :id, :business_id, :notification, :time_seen, :active, :type
end
我的路线:
CompanyBackend.BusinessNotificationRoute = Em.Route.extend({
model: function() {
return CompanyBackend.BusinessNotification.find();
},
});
我的router.js:
this.resource('business_notification', { path: '/' });
我在rails端设置了控制器和路由,但这些应该是无关紧要的,否则我会在控制台中遇到某种类型的rails错误。
感谢您的帮助!
答案 0 :(得分:0)
发生此问题是因为您使用的是1.0.0-beta.X版本。您的代码使用的是v0.14或v0.13 api。
您有两个选择:
1-您可以更新代码以使用1.0.0-beta.3,this transition guide指出所需的更改。您的代码将变为:
Ember.Application.initializer({
name: "reload-busisness-notifications",
initialize: function(container, application) {
var store = container.lookup('store:main')
var BusinessNotifications = store.find('businessNotification')
setInterval(function() {
BusinessNotifications.update();
}, 2000);
}
});
初始化程序不是疯狂的,但我认为这是一个好主意,因为您可以访问容器,而不使用BusinessNotifications.__container__
2-您可以获得v0.14版本here,并替换当前版本。