2015-02-02 1 views
1

다양한 stackoverflow 스레드 및 기타 포럼 항목을 읽었지만 중첩 된 리소스/템플릿 사용 방법을 파악할 수 없습니다. ember-cli 0.1.12포드 구조.ember-cli/pod : 중첩 리소스/템플릿

버전 :

  • 엠버 : 1.8.1 (도 1.9.1 시도)
  • 엠버 데이터 : 1.0.0-beta.12
  • 핸들 바 : 1.3.0 (도 2.0 시도. 0)
  • jQuery를 : 1.11.2

내 router.js (변경, CLI는 단지 데모 목적을 만든) :

Router.map(function() { 
    this.resource("controls", function() { 
    this.route("statements"); 
    this.resource("handles", function() {}); 
}); 

상황 :

  • 경로 "컨트롤이 예상대로 템플릿이 표시됩니다 엠버 외에

    • 추가 수정이 만든 template.hbs
    • 자원"컨트롤 "의 명령 및 텍스트 마커를 생성하지/statements ": 템플릿이 예상대로 표시됩니다.
    • "controls "리소스 아래의"handles "리소스가 전혀 렌더링되지 않습니다.
    • "controls/handles"이후의 경로도 작동하지 않습니다.
    • http://localhost:4200/controls/handles을 호출하면 ember 검사기는보기 트리에서 "응용 프로그램"및 "컨트롤"만 나열합니다./HandlesIndexRoute가 이 HandlesIndexController 핸들/인덱스 /제어 콘솔 보내기 콘솔에 보내기 handles.index 내가 노력

    처리 : 다음 엠버 관리자 경로 섹션에서이 나열

    • 전환을 ember 및 핸들 바 버전 - 영향 없음
    • 포드 구조를 사용하지 않음 - 영향 없음
    • 수동으로 핸들 포드 폴더의 index.hbs 템플릿 - 아무런 영향이 없음

    나는 여기에 기본적인 포인트가 빠져 있다는 느낌이 들었다. 나를 도울 수 있겠습니까?

    내가 포드의 문제에 도움이되지 수 있지만 다른 지점에 시도 할 수 마누엘

  • 답변

    0

    주셔서 감사합니다. 중첩 리소스의 특성은 무엇입니까?

    "..controls/: control_id/handles"과 같은 URL을 기대합니다.

    나는이 같은이 쓴 것 :

    this.resource('controls', function() { 
        this.route('statements'); 
        this.route('show', { path: ':control_id' }, function() { 
        this.resource('handles', function() { 
        }); 
        }); 
    }); 
    

    +0

    감사합니다. 다른 경로/리소스에서 다른 템플릿을 사용해야한다는 요구 사항이 있습니다. 모든 주요 기능을위한 기반을 구축하는 "주요"리소스를 보유하고 있어야합니다. 반면에 로그인, 등록, 오류 및 템플릿 기능을 다루는 "기타 (misc)"리소스. 템플릿 중첩은 경로 중첩을 의미한다는 것을 알게되었습니다. 따라서 내 application.hbs에는 {{outlet}} 만 포함되어 있으며 기본 템플릿에는 nav 및 기타 표준 구성 요소가 포함되어 있으며 내부 중첩 된 리소스는 특정 페이로드를 가져옵니다. –

    +0

    예, 템플릿이 중첩되어 있습니다. Chrome의 Ember Inspector를 사용하면 쉽게 볼 수 있습니다. 템플릿 중첩을 제어하려면이 SO 질문 [link] (http://stackoverflow.com/questions/17012806/idiomatic-emberjs-for-nested-routes-but-non-nested-templates)을 참조하십시오. 원하는 계층 구조는 무엇입니까? 새긴 ​​금 – nikmak