直接输入网址时不会调用路由挂钩

时间:2016-03-04 09:26:23

标签: ember.js ember-data ember-cli

我正面临与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的原因。

1 个答案:

答案 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.jsnote/index.hbsapp/routes/note.js用于控制器和app / templates / note.hbs用于模板文件。