我正面臨着與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'
音符/ 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`
注:我想一些額外的參數傳遞給我的軌道API,這就是爲什麼我要打電話去鉤取上項目。
你在哪個版本上?目前不推薦使用'this.resource'。 – locks
我的應用中也沒有看到'/ assessment/1/note/1'路由,因爲'note'沒有嵌套在'assessment'下面。 – locks
也許不是你所遇到的具體問題,但是'controller.set('model','將給'model'屬性分配一個承諾,這不是你可能想要的。你需要做set一個'then'子句,或者更可能的是,在一個'beforeModel'或'afterModel'鉤子中執行,Ember將負責解決您的承諾。另外,您不需要在'model'中使用'return'鉤? – 2016-03-04 13:51:20