【发布时间】:2014-02-20 02:26:23
【问题描述】:
按照post,在使用 Yeoman 和 Ember 创建工作流时,当我点击 /#/story/new url 我得到这个错误:
Error while loading route: Getbookmarks.StoryEditRoute<.model@http://localhost:9000/scripts/combined-scripts.js:117
superWrapper@http://localhost:9000/bower_components/ember/ember.js:1230
getModel@http://localhost:9000/bower_components/ember/ember.js:33281
model@http://localhost:9000/bower_components/ember/ember.js:33209
invokeCallback@http://localhost:9000/bower_components/ember/ember.js:9427
publish@http://localhost:9000/bower_components/ember/ember.js:9097
publishFulfillment@http://localhost:9000/bower_components/ember/ember.js:9517
DeferredActionQueues.prototype.flush@http://localhost:9000/bower_components/ember/ember.js:5650
Backburner.prototype.end@http://localhost:9000/bower_components/ember/ember.js:5741
Backburner.prototype.run@http://localhost:9000/bower_components/ember/ember.js:5780
Ember.run@http://localhost:9000/bower_components/ember/ember.js:6181
runInitialize@http://localhost:9000/bower_components/ember/ember.js:38453
jQuery.Callbacks/fire@http://localhost:9000/bower_components/jquery/jquery.js:2913
jQuery.Callbacks/self.fireWith@http://localhost:9000/bower_components/jquery/jquery.js:3025
.ready@http://localhost:9000/bower_components/jquery/jquery.js:398
completed@http://localhost:9000/bower_components/jquery/jquery.js:93
http://localhost:9000/bower_components/ember-data/ember-data.js
Line 3285
错误的详细信息是:
error(error=TypeError: this.modelFor(...) is undefined
return this.get('store').find('story', this.modelFor('story').id);
, transition=Object { router={...}, promise=Promise, data={...}, more...}, originRoute=<Getbookmarks.StoryEditRoute:ember265> { routeName="story_edit", router=<Getbookmarks.Router:ember266>, store=<Getbookmarks.Store:ember267>, more...})ember.js (line 33949)
triggerEvent(handlerInfos=[Object { isDynamic=false, name="application", handler=<Getbookmarks.ApplicationRoute:ember268>, more...}, Object { isDynamic=false, name="story_edit", handler=<Getbookmarks.StoryEditRoute:ember265>}], ignoreFailure=true, args=[
TypeError: this.modelFor(...) is undefined
我不知道我为什么会得到这个。我已经按照教程进行,我没有跳过任何内容。我担心的是教程的版本有点旧,但是代码是从 ember 生成器生成的。
有什么想法吗?
编辑:
这是为模型生成的代码:
Getbookmarks.StoryEditRoute = Ember.Route.extend({ 模型:函数(参数){ return this.get('store').find('story', this.modelFor('story').id); }, 设置控制器:功能(控制器,模型){ 控制器.set('模型',模型); buffer = model.get('attributes').map(function(attr){ 返回{键:attr.get('key'),值:attr.get('value')} }); 控制器.set('缓冲区',缓冲区) } });
路线: Getbookmarks.Router.map(function () {
this.resource('index',{path : '/'}); this.resource('story', { path: '/story/:story_id' }); this.resource('story_edit', { path: '/story/new' });
});
【问题讨论】:
-
你能把你路由器的代码贴在这里吗?