2014-10-02 3 views
1

생성 된 미리 컴파일 된 핸들을 특정보기에 표시하는 방법을 알려줄 사람이 있습니까?특정보기에 미리 컴파일 된 템플릿을 표시하는 방법

var aboutData = [{...}, ...];

App.Router.map(function() { 
    this.resource('about); 
}); 


// When navigating to url: www.../#/about 
// This whole thing generates a view appended to the body 
// I want the generated handlebars to be appended somewhere specific 
App.aboutDataRoute = Ember.Route.extend({ 
    model: function() { 
    return aboutData; 
    } 
}); 

답변

1

몇 가지 :

Naming Conventions : 당신이 당신의 Routerabout 자원을 생성하기 때문에 귀하의 경로를 About를 호출해야합니다.

이 경우
App.Router.map(function() { 
    this.resource('about', function() { 
     this.route('data'); 
    }); 
}); 

, 당신은 몇 묵시적 노선이있을 것이다 그리고 사람은 당신이 선언적으로 만들 것이다 (그것은 here, herehere에 대한 자세한 내용을, 비록 : 경로 이름은 다음과 같은 구조에 일치합니다 두 번째 링크는 오래되었습니다.) 그러나 기본적으로이 라우터 정의에서는 협약에 따라이 이름이 상위 (About) 및 하위 (Data) 경로의 이름을 조인하고 접미사 Route을 추가하기 때문에이 라우터 정의에서 AboutDataRoute이라는 이름이 작동합니다. 당신이 정의한 경로로 ~/#/about으로 가면, Ember는 여러분이 생성 한 경로 클래스를 무시하고 그 경로에 대한 기본 구현을 생성합니다 (inspector으로 볼 수 있습니다). 협약.

Case Sensitivity : 일반적으로 대부분의 이름을 지정하는 데 PascalCase을 사용해야하지만 사용자의 이름은 camelCase입니다. 명명 규칙에 대해 자세히 읽어보십시오.


귀하의 질문에 대해서는 다른 요소에 문제없이 응용 프로그램을 렌더링 할 수 있습니다. Application#rootElementbody이 기본값으로 설정되어 있습니다. 당신은 다음과 같이 변경할 수 있습니다 :

App = Em.Application.create({ 
    rootElement: '#selector' 
}); 

이 경우 #selector는 DOM의 모든 요소가 될 수있는 곳.

응용 프로그램보기는 "this"또는 "that"DOM 요소에서 렌더링되어야하는 것입니다. 다른 모든보기는 응용 프로그램보기의 일부 유형의 자식 (직접 또는 간접적으로)이므로 {{outlet}}으로 렌더링되므로 Application 구체적인 클래스에서 수행해야합니다.

+0

나는 최근에 나는 엠버를 연습하고있다. 이것은 나의 질문의 대부분을 지우고, 나는 모두 생각한다. 감사. 어쨌든 Ember.View를 사용할 때 DOM을 삽입 할 위치를 지정할 수도 있습니까? 예. App.AboutView = Ember.View.extend ({ 템플릿 : Ember.TEMPLATE.about // 이미 미리 컴파일 된 핸들입니다 }); – meetmahpuppy

+0

규칙을 따르는 경우 일치하는 이름을 찾아 해당 템플릿을 자동으로 사용하므로보기의 템플릿을 지정할 필요가 없습니다. Btw, 당신의 템플릿은 항상 컴파일됩니다. * HTML 커미트의 일부로'script' 태그에 미리 컴파일되거나 제공 될 수 있습니다. 그리고 그 경우에도, 초기화 중에 컴파일됩니다. 당신의 앱. 따라서 뷰의 템플릿을 수동으로 지정해야하는 경우 [docs] (http://emberjs.com/guides/views/inserting-views-in-templates/)를 따라 'templateName :'같은 것을 사용하십시오. 이름 – MilkyWayJoe

관련 문제