2013-12-20 2 views
1

웹 사이트를 사용자 정의 할 수있는 응용 프로그램을 만들고 있습니다. 이Ember.js의 iframe과 통신하기

+-----------------+------------------------------------------+ 
| sidebar  |  Preview with editor     | 
+-----------------+------------------------------------------+ 
| show title [x] | iframe which shows a preview which is | 
| show logo [ ] | also a part of application with another | 
| chage color [x] | route and allows to add and delete  | 
|     | menu items        | 
|     |           | 
|     |           | 
+-----------------+------------------------------------------+ 

문제는 우리가 등 제목/쇼 로고/변경 색상/표시하지 않으 것을 preview에 말을하는 방법을 알아낼 수 없다는 것입니다 같은 것 같습니다. previeweditor에 같은 컨트롤러를 사용해야 겠지만 컨트롤러를 공유하는 방법을 모르겠습니다.

Ember에서이를 수행 할 방법이 있습니까? 재사용 할 경우

답변

1

그냥 컨트롤러를 확장하는 것이

App.EditorController = Em.ObjectController.extend({ 
    showTitle:true, 
    showLogo: true 
    //etc 
}); 

App.PreviewController = App.EditorController.extend({ 
    showTitle: false, 
    //etc 
}); 

당신이 다음 사용하려는 다른 컨트롤러에서 정보를 얻을 필요가 말을하지 않는 한 needs

http://emberjs.com/api/classes/Ember.ArrayController.html#property_needs

+1

예, 나는 그것을 시도했다. 문제는 iframe이 절대적으로 새로운 엠버 응용 프로그램을 실행한다는 것입니다. 이제 두 응용 프로그램간에 데이터를 공유해야합니다 ... 어떻게 든 가능합니까? – DaZzz

+0

죄송합니다. Pain Meds가 나를 좀 더 조밀하게 만들고 있습니다. 두 응용 프로그램간에 값을 수동으로 업데이트해야합니다. 'App .__ container __. lookup ('controller : editor')' – Kingpin2k

+1

을 사용하여 외부 적으로 컨트롤러에 액세스 할 수 있습니다. jquery의 트리거를 사용하여 일부 통신을 연결하고 사용자 정의 이벤트를 컨트롤러의 메소드에 연결하면 둘 다 상당히 추악합니다 내 의견으로는. Id는 아마 코드를 따르기 쉬운 첫 번째 작업을 수행합니다. – Kingpin2k