【发布时间】:2014-11-21 00:23:55
【问题描述】:
我正在尝试使用 Ember-Data 编写一个 EMberjs 应用程序。还有,require.js 和 coffeescript。尽管遵循了我能找到的每一个指南和讨论,我仍然收到“找不到模型”错误。
这是我的课程:
main.coffee(require.js 的入口点):
require.config
paths:
jQuery: "../javascript/jquery-2.1.1.min"
handlebars: "../javascript/handlebars-v1.3.0"
ember: "../javascript/ember.prod"
ember_data: "../javascript/ember-data.prod",
shim:
ember:
deps: ["jQuery", "handlebars"]
exports: "Ember"
'ember_data':
deps:[ 'ember'],
exports:'DS'
require ["app", "router"], (app, Router) ->
app.deferReadiness()
Router()
app.advanceReadiness()
return
app.coffee:
define "app", ["ember", "ember_data"], (Ember) ->
window.app = Ember.Application.create()
app.ApplicationAdapter = DS.FixtureAdapter.extend()
app
router.coffee:
define "router", ["app", "ember-data", "ember", "models/person"], (app) ->
->
app.Router.map ->
@route 'home', path: "/"
@resource('person', { path: 'person'}, ->
@route('details', { path: ':slug' })
return
)
return
app.HomeRoute = Ember.Route.extend
model: ->
app.PersonRoute = Ember.Route.extend
model: () ->
return @store.find("Person")
models/person.coffee:
class app.Person extends DS.model
first: DS.attr("string")
app.Person.FIXTURES = { person: [
{
id: 1,
first: "first_1"
},
{
id: 2,
first: "first_2"
}
]}
但是当我转到http://localhost:9000/#/person, 时,我得到了这个:
Error while processing route: person.index" "No model was found for 'Person'" "EmberError@http://localhost:9000/assets/javascript/ember.prod.js:13949:17
Store<.modelFor@http://localhost:9000/assets/javascript/ember-data.prod.js:11264:1
Store<.findAll@http://localhost:9000/assets/javascript/ember-data.prod.js:10845:20
Store<.find@http://localhost:9000/assets/javascript/ember-data.prod.js:10476:1
app.PersonRoute<.model@http://localhost:9000/assets/javascript/router.js:24:16
apply@http://localhost:9000/assets/javascript/ember.prod.js:19296:1
superWrapper@http://localhost:9000/assets/javascript/ember.prod.js:18867:15
Route<.deserialize@http://localhost:9000/assets/javascript/ember.prod.js:24467:16
applyHook@http://localhost:9000/assets/javascript/ember.prod.js:45215:16
HandlerInfo.prototype.runSharedModelHook@http://localhost:9000/assets/javascript/ember.prod.js:43237:22
UnresolvedHandlerInfoByParam<.getModel@http://localhost:9000/assets/javascript/ember.prod.js:43463:16
bind/<@http://localhost:9000/assets/javascript/ember.prod.js:45089:16
tryCatch@http://localhost:9000/assets/javascript/ember.prod.js:45538:16
invokeCallback@http://localhost:9000/assets/javascript/ember.prod.js:45550:17
publish@http://localhost:9000/assets/javascript/ember.prod.js:45521:11
@http://localhost:9000/assets/javascript/ember.prod.js:28956:9
DeferredActionQueues.prototype.invoke@http://localhost:9000/assets/javascript/ember.prod.js:679:11
DeferredActionQueues.prototype.flush@http://localhost:9000/assets/javascript/ember.prod.js:749:15
Backburner.prototype.end@http://localhost:9000/assets/javascript/ember.prod.js:135:11
createAutorun/backburner._autorun<@http://localhost:9000/assets/javascript/ember.prod.js:521:9
" ember.prod.js:15069
有人知道吗?
编辑: 似乎如果我将 person.coffee 文件从 /models 移动到与 main 和 App 相同的级别,并相应地更改路由器中的“定义”行,它会按预期工作。对我来说仍然是个谜:(
【问题讨论】:
标签: ember.js coffeescript requirejs ember-data