2013-10-15 30 views
0

我正在構建一個使用ember-data和rails作爲API的Ember應用程序。我試圖從application.js文件調用BusinessNotifications模型的find方法。當進行最初的呼叫時,我得到「無法找到」錯誤。Ember數據找到應用程序就緒的方法

我的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'), 
}); 

我的串行:

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: '/' }); 

我有控制器和設置在鐵軌上結束的路線,但這些應該是不相關的或者我會得到某種軌道誤差的控制檯。

感謝您的幫助!

回答

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); 
    } 
}); 

的初始化不是madatory但我認爲這是一個好主意,因爲你有機會獲得容器,不使用BusinessNotifications.__container__

2 - 你可以得到v0.14版本here ,並由您當前的替換。

+0

這似乎是一個很好的解決方案。然而,我遇到的問題是在使用ember-auth的認證請求之前調用初始化程序。有什麼辦法推遲這個初始化器,直到請求之後? –

+0

如何使用應用程序準備好處理此問題?我認爲你在應用程序準備中會遇到同樣的問題。你可以使用ember-auth來顯示你的認證請求嗎? –

相關問題