>  기사  >  웹 프론트엔드  >  단일 EmberJS 경로에서 관련되지 않은 여러 모델을 로드하는 방법은 무엇입니까?

단일 EmberJS 경로에서 관련되지 않은 여러 모델을 로드하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-28 12:59:02136검색

How to Load Multiple Unrelated Models in a Single EmberJS Route?

EmberJS: 단일 경로에 여러 개의 관련 없는 모델 로드

EmberJS 애플리케이션을 구성할 때 관련 없는 데이터의 여러 모델을 단일 경로에 로드해야 할 수도 있습니다. . 이 질문은 이러한 작업에 적합한 접근 방식을 탐구합니다.

고려 사항

로드 프로세스를 시작하기 전에 모델 후크에서 여러 모델을 반환하는 것이 정당한지 여부를 결정하는 것이 중요합니다. 이 접근 방식을 크게 권장하지 않는 시나리오는 경로가 URL 슬러그(예: this.resource('foo', {path: ':id'}))를 기반으로 동적 데이터를 로드하는 경우입니다. 이러한 조건에서 여러 모델을 로드하려고 하면 경로에 연결할 때 잠재적인 문제가 발생할 수 있습니다. Ember는 모델 후크를 우회하고 연결 중에 제공된 모델을 사용하므로 여러 모델 검색을 예상했지만 하나만 수신했기 때문에 일관되지 않은 동작이 발생합니다.

모델 후크 로드에 대한 대안

여러 모델을 로드하는 경우 모델 후크 접근 방식이 적합하지 않은 경로에서는 다음 대안을 고려하십시오.

setupController/afterModel 후크에서: setupController 또는 afterModel 후크에 추가 모델을 로드합니다. 이 접근 방식을 사용하면 필요한 경우 결과를 컨트롤러에 수동으로 연결할 수 있습니다. 그러나 이것이 작동하려면 모델 후크처럼 전환을 차단해야 할 때 afterModel 후크에서 promise를 반환해야 합니다.

App.IndexRoute = Ember.Route.extend({
  model: function(params) {
    return $.getJSON('/books/' + params.id);
  },
  setupController: function(controller, model) {
    // Load additional model and set it on the controller
    controller.set('model2', { bird: 'is the word' });
  }
});

Route의 모델 후크에서: 관련되지 않은 여러 모델을 로드해야 하고 경로가 동적 데이터를 로드하지 않는 경우 모델 후크를 활용할 수 있습니다.

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return {
      model1: ['red', 'yellow', 'blue'],
      model2: ['green', 'purple', 'white']
    };
  }
});

프라미스 사용: 모델을 로드하는 경우 비동기 요청( 예: 서버 호출) 약속을 사용하여 이러한 작업을 해결하고 결과 모델을 모델 후크에 반환합니다.

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return Ember.RSVP.hash({
      model1: promise1,
      model2: promise2
    });
  }
});

위 내용은 단일 EmberJS 경로에서 관련되지 않은 여러 모델을 로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.