답변:
이후 1.11.0에서, 있습니다
this.route
만 대신 사용됩니다this.resource
. 출처 : http://guides.emberjs.com/v1.11.0/routing/defining-your-routes/ *
자세한 설명 은이 게시물 을 참조하십시오.
다음은이 게시물의 대략적인 요약입니다 (약간 수정했습니다).
리소스와 경로가 변경된 이후로 많은 사람들이 두 가지의 의미와 이름 지정에 미치는 영향에 대해 혼란스러워합니다. 차이점은 다음과 같습니다.
- 자원-사물 (모델)
- 경로-사물과 관련이있는 것
따라서 이것은 경로와 리소스를 사용하는 라우터가 다음과 같을 수 있음을 의미합니다.
App.Router.map(function() {
this.resource("posts", { path: "/" }, function() {
this.route("new", { path: "/new" });
});
this.route("another", { path: "/another" });
});
이로 인해 다음 경로가 생성 / 사용됩니다.
이 예에서 볼 수 있듯이 리소스는 사용 / 생성되는 컨트롤러, 경로 및보기의 이름에 영향을줍니다 ( "새"경로는 "게시"리소스에 종속 된 것으로 처리됨). 원본 출처에서 인용 (Patrick M이 댓글에서 올바르게 지적 했으므로 짜증이 났기 때문에 수정했습니다) :
즉, 리소스를 만들 때마다 완전히 새로운 네임 스페이스가 만들어집니다. 해당 네임 스페이스는 리소스의 이름을 따서 명명되며 모든 하위 경로가 여기에 삽입됩니다.
업데이트 : 중첩 된 리소스가있는 더 복잡한 예제
다중 중첩 리소스가있는 다음과 같은 더 복잡한 예를 고려하십시오.
App.Router.map(function() {
this.resource("posts", { path: "/" }, function() {
this.route("new", { path: "/new" });
this.resource("comments", { path: "/comments" }, function() {
this.route("new", { path: "/new" });
});
});
this.route("another", { path: "/another" });
});
이 경우 리소스 comments
는 새로운 네임 스페이스를 만듭니다. 이는이 경우 결과 경로가 다음과 같음을 의미합니다. 보시다시피 주석 리소스의 경로, 컨트롤러 및보기에는 상위 경로의 이름이 접두사로 붙지 않습니다. 즉, 리소스를 다른 리소스 내에 중첩하면 네임 스페이스가 재설정됩니다 (= 새 네임 스페이스 생성).
이 동작은 Ember 문서 에도 설명되어 있습니다.
That namespace will have an " which [...]
. 무슨 "
뜻입니까? Route | 컨트롤러 | 전망?
App.Router.map(function() { this.route("posts", { path: "/" }, function() { this.route("new"); this.route("comments"}, function() { this.route("new"); }); }); this.route("another", { path: "/another" }); });