0
에서 경로 액션에서 모델을 얻을 어차피

전 경로에서 단지 싶어 새로 고침 모델 컨트롤러에서 작업을 얻을이 경로에 doRefresh 작업을 실행하는 동안는 타다 남은

이 불행하게도이가하는 내 코드

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    profileFormService: Ember.inject.service(), 
    profileFormAtributeService: Ember.inject.service(), 
    model(){ 
    return Ember.RSVP.hash({ 
     profileForms: this.get('profileFormService').find(), 
     profileFormsAttributes: this.get('profileFormAtributeService').findByProfileFormId("1"), 
     inputTypes: {data: ['CHECKBOX', 'NUMBER_FIELD', 'PHONE_NUMBER', 'TEXT_FIELD', 'EMAIL', 'TEXT_AREA', 'RADIO_BUTTON', 'DESA', 'KABUPATEN_KOTA', 'PROVINSI', 'KECAMATAN', 'MAP_POINT', 'MAP_POLYGON']} 
    }); 
    }, 
    setupController(controller, model) { 
    this.controllerFor('backend.setting-profile-form-attribute').set('profileForms', model.profileForms); 
    this.controllerFor('backend.setting-profile-form-attribute').set('profileFormsAttributes', model.profileFormsAttributes); 
    this.controllerFor('backend.setting-profile-form-attribute').set('inputTypes', model.inputTypes); 
    }, 
    actions:{ 
    doRefresh(param){ 
     let context = this; 
     this.get('profileFormAtributeService').findByProfileFormId(param).then(function (response) { 
     context.set("profileFormsAttributes",response); 
     }), function (e) { 
     this.debug(e); 
     }; 
    } 
    } 
}); 

입니다 'nt는 profileFormsAttributes 모델에 영향을 미칩니다.

나는 벤이와 모델을 디버깅하려고했습니다이

this.debug(this.get('controller.model.profileFormsAttributes')) 
this.debug(this.get('model.profileFormsAttributes')); 

하지만 콘솔 로그는 정의가

당신이이 문제를 해결하고이 내 경로에서 일어날 것을 설명 할 수 있다고 말했다 ..

귀하의 우려에 감사드립니다

답변

1

귀하의 문제는 당신이 직접 처리기에서 경로 내에서 반환 된 개체를 얻을 수 없다는 것입니다 this.get('profileFormsAttributes'); 따라서 귀하의 설정이 작동하지 않습니다.

this.get('controller.model.profileFormsAttributes'); 
this.get('model.profileFormsAttributes'); 

위의 두 문장조차 작동하지 않습니다. model 또는 controller을 이와 같이 검색 할 수 없기 때문입니다.

두 가지 옵션이 있습니다. 모델에서 직접 반환 할 내용을 model 내에서 this.set('model', model)과 연결하거나 this.controllerFor(this.get('routeName')).get('model')

두 번째 방법을 사용하는 것이 좋습니다. 다음 케이스를 설명하기 위해 준비한 twiddle을 살펴보십시오. 개체의 foo 속성이 난이 도움이되기를 바랍니다

Ember.set(this.controllerFor(this.get('routeName')).get('model'), 'foo', 'foo updated'); 

로 설정되어 model 후크에서 반환 된 경우

것은 index.js에서 봐 주시기 바랍니다.

+0

감사합니다. – cahyowhy