直接输入 url 时不调用路由钩子

Route hooks are not called when the url is directly entered

我正面临与 Ember 路线相关的严重问题。

当我尝试通过 link-to 帮助器显示单个项目时,它工作正常并且 note.index 的路由中的挂钩被正确调用。但是当我直接在浏览器中输入 URL (localhost:4200/assessment/1/note/1) 时,不会调用路由挂钩,它是 "model" 挂钩或 "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'

note/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,这就是为什么我需要在获取项目时调用挂钩。

Ember版本为1.10.0。现在,当我在浏览器中输入 url 并且运行良好时,路由挂钩正在运行。实际上我的路由文件是 index.js,它存在于 note/index.js 路径中。我将 index.js 路由从笔记目录移动到 "app/routes/" 目录,并将名称从 index.js 文件更改为 note.js 文件。所以我的路由文件的新路径是 app/routes/note.js. 它解决了我的问题,现在我的挂钩正常工作并在我直接 url 进入 broswer 时被调用。

同样,我移动并更改了控制器文件和模板文件的名称和路径。从 note/index.jsnote/index.hbsapp/routes/note.js 控制器和 app/templates/note.hbs 模板文件。