2012-07-06 180 views
1

使用最新(來自GitHub)Ember和Ember數據,此代碼給我一個錯誤 - 未捕獲TypeError:無法讀取未定義的屬性'find'燼數據-latest.js:3170Ember數據 - 未捕獲TypeError:無法讀取未定義的屬性'find'

http://jsfiddle.net/Bf43W/9/

// only needed on JSFiddle; this is to trigger the route 
history.pushState("", "", "/projects/1/tasks"); 

App = Ember.Application.create({}); 

App.store = DS.Store.extend({ 
    revision: 4, 
    adapter: DS.RESTAdapter.create() 
}); 

App.Project = DS.Model.extend({ 
    name: DS.attr('string') 
}); 

App.ApplicationController = Ember.ObjectController.extend({ 
}); 

App.ApplicationView = Ember.View.extend({ 
    templateName: 'application' 
}); 

App.TasksView = Ember.View.extend({ 
    templateName: 'tasks' 
}); 

App.Router = Ember.Router.extend({ 
    root: Ember.Route.extend({ 
     tasks: Ember.Route.extend({ 
      route: '/projects/:project_id/tasks', 
      connectOutlets: function(router) { 
       router.get('applicationController').connectOutlet('Tasks'); 
      } 
     }) 
    }) 
}); 

App.router = App.Router.create({ 
    location: 'history' 
}); 

App.initialize(App.router); 

更改:projects_id到別的途徑(例如:1,所以它的URL匹配)修復了這個,但當然這不是非常有用。

任何人都可以點亮這裏發生的一切嗎?謝謝!

回答

3

唯一的錯誤是你必須利用App.store。你聲明一個類,所以命名約定需要App.Store,以便讓App初始化正確。

+0

我實際上是這樣做的:使用DS.Store.create()並保持App.store的小寫。 – pjmorse 2012-08-31 17:48:43

5

我有同樣的問題。我解決它通過獲取最新的下載,而不是編譯最新的承諾,從:

https://github.com/emberjs/data/downloads

此代碼是從3個月前,所以我們使用一個版本4卡住了,但它的穩定。

UPDATE

我能得到這個工作後,我發現他們在灰燼,數據回購使用灰燼的版本比你從灰燼網站下載版本更新:

// Version: v1.0.pre-156-gddcc580 
// Last commit: ddcc580 (2012-09-21 09:52:25 -0700) 

VS

// Version: v1.0.pre 
// Last commit: 7955b85 (2012-08-03 14:50:17 -0700) 

後您編譯第l Ember-Data的一個測試版本,進入dist/modules獲取他們正在開發的Ember版本。

我也不得不改變方式,商店被初始化:

App.Store = DS.Store.extend({ 
    revision: 4, 
    adapter: DS.RESTAdapter.create() 
}); 

App.store = DS.Store.create({ 
    revision: 6, 
    adapter: DS.RESTAdapter.create() 
}); 

我也不得不刪除App.initialize()線,因爲灰燼的這個新版本似乎實例化自己。

0

得到了同樣的問題

在我的情況下,只需更換

App.Store = DS.Store.extend({ 
... 
}) 

App.store = DS.Store.create({ 
... 
}) 

固定它。所以我想Ember.js版本不是問題。無論如何謝謝你的想法如何解決我的麻煩。

相關問題