簡體   English   中英

灰燼直接路線不加載內容

[英]Ember direct route dont loads content

我有這條路

this.resource('todos', { path: '/todos' }, function() {
  this.route('todo', { path: '/todo/:todo_id' });
  this.route('new', {path: '/todo/new'});
});

這是路線待辦事項的控制器

App.TodoRoute = Ember.Route.extend({
  model: function(params) {
    return Todo.find(params.todo_id);
  }
});

當我直接加載/ todos並選擇一個待辦事項時,按預期方式加載,但是當我嘗試直接加載/ todo / idOfTheTodoHere時,nothign被加載。

我必須向控制器添加一些內容,以等待找到所有數據以加載模板?

我會把這條完整的路線放在這里

App.Router.map(function() {
  this.resource('app', { path: '/' }, function () {
    this.route("about");

    this.resource('todos', { path: '/todos' }, function() {
      this.route('todo', { path: '/todo/:todo_id' });
      this.route('new', {path: '/todo/new'});
    });
  });
});

//This works and finds All todos
App.TodosRoute = Ember.Route.extend({
  model: function () {
    return App.Todo.find();
  }
});

App.TodosNewRoute = Ember.Route.extend({
  model: function () {
    return App.Todo.create;
  }
});

App.TodosTodoRoute = Ember.Route.extend({
  model: function(params) {
    console.log(App.Todo.find();
    return Todo.find(params.todo_id);
  }
});

現在,當我轉到/#/ routes時,所有待辦事項都可以正確顯示,並且可以創建一個新的待辦事項,但是當我單擊一個待辦事項以顯示它時,如果我將路線更改為/#/ todos / todo / ID,重新啟動瀏覽器,該模板什么也不顯示,看起來像直接在路徑上加載模型什么也不返回。 找到的唯一參數是id,其他屬性為null。

所以在模板待辦事項中是否具有此屬性

{{id}} - {{title}}

僅顯示ID,如果我檢查控制台

 model: function(params) {
    console.log(App.Todo.find();

返回模型ID,其他值未定義

不知道這是不是,但是也許你的意思是導航到#/todos/todo/SOME_ID而不是#/todo/SOME_ID映射時為todo路由提供的路徑( this.route('todo' {path: 'todo/:todo_id'});附加到父路徑( /todos ),因此您最終得到todos/todo/:todo_id

除此之外,您可以執行一些調試步驟來進一步隔離問題

  1. 您路線的model掛鈎是否被調用?
  2. 您期望的是params.todo_id嗎?
  3. 瀏覽器是否發出正確的ajax請求? (到正確的端點)
  4. 您的服務器是否正確響應了該ajax請求?

編輯

我認為您的意思是在模型掛鈎中為TodosTodoRoute調用App.Todo.find:

App.TodosTodoRoute = Ember.Route.extend({
    model: function(params) {
      console.log(App.Todo.find();
      return Todo.find(params.todo_id);   // --- should be App.Todo.Find
  }
});

您發布的代碼中還存在一些語法錯誤-您是否可以發布重復該問題的JSBin或JSFiddle示例?

您是否確認App.Todo.find(some_id)向正確的服務器端點發出了請求? 您的服務器是否提供正確的響應?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM