2017-06-04 60 views
2

我創建了一個燼演示,父視圖和它的孩子 這是父視圖灰燼模型不綁定使用動態鏈接到

<h1>A list of Todo Tasks</h1> 
<ul> 
{{#each model as |todo|}} 
<li>{{#link-to "todos.details" todo}}{{todo.desc}}{{/link-to}}</li> 
{{/each}} 
</ul> 

{{outlet}} 

及其JS登錄是 進口灰燼從「餘燼」;

export default Ember.Route.extend({ 
    model(){ 
     return [{ 
      "id" : 1, 
      "desc" : "Try use ember" 
     }, 
     { 
      "id" : 2, 
      "desc" : "Add it to github" 
     }, 
     ]; 

    } 
}); 

但是當我使用的鏈接並瀏覽該數據並沒有顯示,除非我刷新 頁面這是孩子視圖

<h2>The Details for <span style="color: green;">{{model.name}}</span> is : </h2> 
{{#if model.error}} 
<p>{{model.message}}</p> 
{{else}} 
<ul> 
{{#each model.steps as |task|}} 
    <li>{{task.do}}</li> 
    {{/each}} 
</ul> 
{{/if}} 

{{outlet}} 

和JS邏輯

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model(params){ 

     if(params.id == "1"){ 
      return { 
       name : "Ember SetUp", 
       steps : [{ 
        id :1, 
        do : "Download Ember Cli" 
      }, 
      { 
        id :2, 
        do : "Generate New Project" 
      }, 
      { 
        id :3, 
        do : "Generate Pages&Routes" 
      } 
       ] 
      }; 
     } 
     else{ 
      return { 
       error : true, 
       name : "Not Found", 
       message : "There is no task with this id" 
      } 
     } 
    } 
}); 

iam using ember 2.5 and this is part of the router

this.route('todos', function() { 
    this.route('details',{path : "/:id"}); 
    }); 

回答

2
{{#link-to "todos.details" todo}} 

由於您提供的對象todo,所以它不會執行模型掛鉤。 所以儘量

{{#link-to "todos.details" todo.id}} 

參考這裏:https://guides.emberjs.com/v2.13.0/routing/specifying-a-routes-model/#toc_dynamic-models

注:與動態段的路由總是有當它通過URL進入所謂的模型鉤 。如果通過 進入路線,則提供轉換(例如,當使用鏈接到Handlebars助手)和 模型上下文(鏈接到的第二個參數)時,則掛鉤 不被執行。如果提供標識符(如id或slug)而不是模型鉤子將被執行。

+0

感謝很多工作得很好,事情就是在這個vid中發送的對象確實執行了模型hook.What是什麼? https://egghead.io/lessons/javascript-define-models-for-routes-in-ember – abdoutelb

+1

該教程很少有誤導性,實際上在該教程中'todos.show'顯示了'todos'模型而不是' todos.show'模型。因爲兩者都有相同的數據,所以我們無法找出區別..看看[this twiddle](https://ember-twiddle.com/43f8ffc356603943d46a26360451f0ac?openFiles=routes.todos.js%2C&route=% 2Ftodos%2F1)這證明了問題 – kumkanillam

+0

我知道了,因爲本教程中的模型是相同的餘燼可以找出如何使模型掛鉤,如果不是我應該明確發送Id。 – abdoutelb

1

確認,視頻的OP在這裏。對於那個很抱歉。對我而言,小小的說錯了,我應該在視頻的評論中解決這個問題,並嘗試修改它。對困惑感到抱歉! D:

+0

沒問題@kumkanillam很好地宣佈它 順便說一句我喜歡這些基本面:D – abdoutelb

+0

@Abdoutelb隨時通過電子郵件與我聯繫以獲得更多的反饋意見,您可以通過iheanyi.com找到一種方式與我聯繫,或者只是DM我推特! twitter.com/kwuchu – iheanyi