Ember数据在应用程序就绪时找到方法

时间:2013-10-15 15:54:46

标签: ruby-on-rails ember.js ember-data

我正在使用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错误。

感谢您的帮助!

1 个答案:

答案 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,并替换当前版本。

相关问题