Ember에서 중첩 된 객체에 많은 (아픈) 문제가 있습니다. 나는 그것이 상당히 표준적인 일이라고 의심하기 때문에 내가 잘못한 방식으로 태클을하고있는 것 같아요.Ember JS : 중첩 된 객체 및 아키텍처
"많은"B가 있고 각각의 B에는 "C"가 많은 객체 A가 있다고 가정 해보십시오.이 아키텍처는 기본적으로 내 관계형 DB 스키마와 일치합니다.
중첩 된 경로가 필요하지 않으므로 A와 같은 개체를 자연스럽게 렌더링하는 방법으로 partials를 사용하는 것이 좋습니다. A에 대한
템플릿 : 같은 뭔가
...A stuff...
{{#each Bs}}
{{ partial "show_B" }}
{{/each}}
등등.
문제는 자식 개체에 자체 컨트롤러가 있어야한다는 것입니다. RC1 (http://emberjs.com/blog/2013/02/15/ember-1-0-rc.html) 이래로 새로운 itemController가 있다는 것을 알고 있지만 유용하지는 않습니다. 계층 구조에서 더 아래로, C 개체는 각각 하나의 D 개체를 가지고 있다고 가정 해 봅시다. 그래서 C 템플릿은 다음과 같이 보일 것이다 :
... C stuff...
{{#with c.D}}
{{ partial "show_D" }} // How do I get this partial to have its own controller?
{{/with}}
나는 새로운
{{control}}
여기에 도움이 될 것 같아요,하지만 난 (문맥이 제대로 설정되지 않은)을 사용하여 문제를 많이 가지고 있어요. 또한 방금 추가 된 것 (아직 개발 중이다)이라면 다른 방법이 있어야한다는 것을 의미합니다. 마지막으로 두 개의 서로 다른 API를 사용하는 것이 다소 이상하다고 생각합니다. 항목 목록에 대해서는 "itemController", 단일 항목에 대해서는 "{{control}}"- 하루가 끝날 때 객체를 컨트롤러 모두.
누군가 나를 올바른 방향으로 안내 할 수 있습니까?
감사합니다.
PJ
테디에게 감사드립니다. 한 가지 문제는 각 블록 안에'{{control}} '을 넣는 것이 지금 당장은 효과가 없다는 것입니다. Cf : https://github.com/emberjs/ember.js/issues/1990. 그것은 나에게 많은 문제를 일으켰다. 해당 컨트롤러를 싱글 톤으로 수동으로 등록해야합니다. 이는 나에게 해킹 된 것처럼 느껴집니다. 사실, 지금 itemController와'{{control}}'은 콜렉션에서 다른 행동을합니다 ... 모든 것이 더 이상하게 생각합니다. – PJC
해결 방법은 ** 싱글 톤이 아닌 **로 등록하는 것입니다. 사실, 그것은 해킹입니다. 그래서'control'이 여전히 깃발 뒤에 숨겨져 있습니다. (하지만 작동 시키면'itemController'와 동일하게 동작합니다.) –
이 스레드는 다음을 보는 사람에게 도움이 될 수 있습니다 : http : //discuss.emberjs.com/t/control-vs-itemcontroller/493/10 – sandstrom