2016-10-17 9 views
0

次のルート構造は私にとってうまくいきます。Emberはサブフォルダ内のモデルデータを認識しません

Correct Structure

しかし、私は教員フォルダ内faculty.jsを移動するたびに、私のテンプレートは、データを認識することを停止します。静的ビュー要素は依然として正しく表示されますが、データモデルはnullとして記録されます。どうすれば修正できますか?

enter image description here

faculty.js

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model(){ 
     return {name:"Janusz", lastname:"Chudzynski", department:"Test"}; 
    } 
}); 

faculty.hbs

{{outlet}} 
<h2>Faculty</h2> 
{{log model}} 
{{faculty-single facultyModel=model}} 

ルータ

import Ember from 'ember'; 
import config from './config/environment'; 

const Router = Ember.Router.extend({ 
    location: config.locationType, 
    rootURL: config.rootURL 
}); 

Router.map(function() { 
    this.route('colleges'); 
    this.route('departments'); 
    this.route('faculty',{path:'/faculty'}); 
    //this.route('faculty'); 
}); 

輸出・デフォルト・ルータ;

コンソール

ヌル

+0

ルータを組み込むことはできますか?ファイル構造はルータと同じにする必要があります。 – locks

+0

私はちょうどそれを追加しました。したがって、h2は正しく表示されますが、モデルはnullとしてログに記録されます –

答えて

1

、フォルダの階層が密接にあなたのルーターの階層を反映する必要がありますログインします。あなたのケースでは、以下があります。

Router.map(function() { 
    this.route('colleges'); 
    this.route('departments'); 
    this.route('faculty'); 
}); 

これが正しいファイル構造であること、それらのすべてが直接applicationルートの下にあることを意味します仕事に/app/routes/faculty/faculty.jsについては

app 
    routes 
    colleges.js 
    departments.js 
    faculty.js 

、あなたがする必要があるだろう

名前が連結しているので
Router.map(function() { 
    this.route('colleges'); 
    this.route('departments'); 
    this.route('faculty', function() { 
    this.route('faculty'); 
    }); 
}); 

、親敗走:facultyルートがfacultyルート内にネストされていますeのフルネームはfacultyで、ネストされたルートのフルネームはfaculty.facultyです。

+0

'/ faculty'を訪れてこのルートを見たい場合、ディレクトリ構造を維持してこのファイルの名前を' index.js'に変更できます –

+0

この場合、パスパラメータの役割は何ですか?私はこの問題を解決することを期待していました。 this.route( 'faculty'、{path: '/ faculty'}); –

+1

パスはファイルシステムではなくURLバーに表示されます。 – locks

関連する問題