我正面临与Ember路线有关的严重问题。
当我尝试通过link-to
帮助程序显示单个项目时,它可以正常工作并挂钩路由note.index
正确调用。但是当我直接在浏览器中输入URL(localhost:4200/assessment/1/note/1
)时,不会调用路由挂钩,无论是“模型”挂钩还是“setupController”挂钩或任何其他挂钩。
基本上我想用store.find
将一些额外的参数传递给我的rails应用程序。
Router.js
@resource "assessment", path: 'assessments/:assessment_id', ->
@route 'edit'
@resource "notes", ->
@route "new"
@resource "note", path: "note/:note_id", ->
@route 'edit'
请注意/ index.js
`import Ember from 'ember'`
noteIndexRoute = Ember.Route.extend
model: (params)->
console.log('********************Model Hook******************')
assessment = @modelFor('assessment')
@store.find('note',params.note_id,assessment_id: assessment.get('id')});
setupController: (controller,model)->
@_super controller, model
console.log('********************Setup Contr Hook********************')
assessment = @modelFor('assessment')
controller.set( "model",@store.find('note',model.id,assessment_id: assessment.get('id')});
`export default noteIndexRoute`
注意:我想将一些额外的参数传递给我的rails API,这就是我需要在获取项目时调用hook的原因。
答案 0 :(得分:0)
Ember版本是1.10.0。现在,当我在浏览器中输入url并且运行良好时,路由挂钩正在变形。实际上我的路由文件是index.js,它出现在note/index.js
路径中。我将index.js路由从note目录移动到"app/routes/"
目录,并将名称从index.js文件更改为note.js文件。所以我路由文件的新路径是app/routes/note.js.
它解决了我的问题,现在我的钩子工作正常,当我直接进入broswer时调用。
同样我移动并更改控制器文件和模板文件的名称和路径。从note/index.js
和note/index.hbs
到app/routes/note.js
用于控制器和app / templates / note.hbs用于模板文件。