我一直在跟随Vic Ramon的Ember教程(我是新的),我能够成功创建CRUD界面,可以回到1个postgres表。 http://ember.vicramon.com/our-app
我想扩展本教程以通过rails使用2个不同的postgres表。这是路由器(名称很好,状态不好):
App.Router.reopen
location: 'auto'
rootURL: '/'
App.Router.map ()->
@resource 'names', path: '/', ->
@route 'new'
@resource 'name', path: '/name/:id', ->
@route 'edit'
@resource 'states', path: '/states/', ->
@resource 'state', path: ':id'
控制器:
App.StatesController = Ember.ArrayController.extend
路线:
App.StatesRoute = Ember.Route.extend
model: -> @store.find 'state'
型号:
App.State = DS.Model.extend
calc_num: DS.attr 'number'
energy_list: DS.attr 'string'
dos_list: DS.attr 'string'
atom_subset: DS.attr 'string'
orbital_subset: DS.attr 'number'
fermi_level: DS.attr 'number'
core_level: DS.attr 'number'
elec_occ_list: DS.attr 'string'
elec_energy_list: DS.attr 'string'
模板:
article#states
h1 DOS States
ul
each state in controller
link-to 'state' state tagName="li"
state.calc_num
当我运行网站时,我收到以下错误:
> Error while loading route: TypeError: undefined is not a function
> at instantiate (http://lh:3000/assets/ember.js?body=1:11474:26)
> at lookup (http://lh:3000/assets/ember.js?body=1:11340:19)
> at Object.Container.lookup (http://lh:3000/assets/ember.js?body=1:11019:16)
> at Ember.Route.Ember.Object.extend.controllerFor (http://lh:3000/assets/ember.js?body=1:36763:28)
> at Ember.Route.Ember.Object.extend.setup (http://lh:3000/assets/ember.js?body=1:36302:27)
> at handlerEnteredOrUpdated (http://lh:3000/assets/ember.js?body=1:33569:36)
> at http://lh:3000/assets/ember.js?body=1:33538:18
> at forEach (http://lh:3000/assets/ember.js?body=1:34579:54)
> at setupContexts (http://lh:3000/assets/ember.js?body=1:33537:9)
> at finalizeTransition (http://lh:3000/assets/ember.js?body=1:33711:9)
您认为怎么回事?我可以在ember检查器中告诉数据似乎是为状态加载的。非常感谢!
答案 0 :(得分:0)
Matthew Blancarte给出了解决方案,但诀窍是在声明控制器之后总是添加括号,即使在coffeescript中也是为了安全。
App.StatesController = Ember.ArrayController.extend({})