2016-11-22 4 views
1

나는 Ember.js의 초심자이기 때문에 코드 스쿨 코스 'Try Ember'를 사용했습니다. 따라서이 과정을 마치면 실제로 오류가 발생합니다.Ember.js 전체 페이지를 다시로드 할 때 간단한 중첩 경로 오류

router.js 파일은 다음과 같습니다 :

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('orders', function(){ 
    this.route('order', {path: '/:order_id'}); 
    }); 

}); 

export default Router; 

지금까지 내가 튜토리얼에서 이해 내가 두 경로 orders.js 각각 템플릿 templates/orders.hbstemplates/orders/order.hbsorder.js 있습니다.

orders.js 파일 :

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model(){ 
    return [ 
     { id: '1', name: 'Vlatko'}, 
     { id: '2', name: 'Mila'} 
    ]; 
    } 
}); 

order.js 파일 :

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model(params){ 
    return [ 
     { id: '1', name: 'Vlatko'}, 
     { id: '2', name: 'Mila'} 
    ].findBy('id', params.order_id); 
    } 
}); 

templates/orders.hbs 파일 :

<h2>Hello from orders</h2> 

{{#each model as |order|}} 
    <p> 
    {{#link-to 'orders.order' order}} 
     Order {{order.id}} 
    {{/link-to}} 
    </p> 
{{/each}} 

{{outlet}} 

templates/orders/order.hbs 파일 :

<p>Order {{model.id}} for {{model.name}}</p> 

그래서 모든 것이 매우 간단하고 잘 작동하지만 전체 페이지를 다시로드 할 때 /orders/1는이 두 가지 오류

Error while processing route: orders.order No model was found for 'order' Error: No model was found for 'order'

Error: No model was found for 'order'를 제기 (페이지에 직접 입력)

이제 웹에서 많이 검색 한 결과 동일한 오류를 찾을 수 없습니다.

추가 힌트 : 중첩 된 경로를 사용할 때만 발생합니다. 예를 들어 내 router.js에서이 같은 경우 :

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('orders'); 
    this.route('order', {path: '/orders/:order_id'}); 
}); 

export default Router; 

을 나는 오류를 얻을 수 없습니다.

답변

1

order.js 파일은 orders/order.js이어야합니다. 문제는 엠버가 경로를 찾지 못해서 기본 경로를 얻을 수 없다는 것입니다. 동적 세그먼트 order_id이있는 기본 모델 후크는 기본적으로 store.findRecord('order', theId)을 수행하므로 ember-data을 사용하지 않으므로 order 모델이 정의되지 않았다는 오류가 발생합니다.

+0

답변 해 주셔서 감사합니다. 순수한 논리. –