0

je veux juste modèle de rafraîchissement en cours de route alors obtenir une action de contrôleur et exécuter l'action doRefresh dans cette voiene peux pas obtenir le modèle de l'action de la route de Braise

c'est mon code

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); 
     }; 
    } 
    } 
}); 

malheureusement, c'est fait N'affecte pas le modèle profileFormsAttributes.

J'ai ben essayer de déboguer le modèle avec ce

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

mais le journal de la console dit

non défini

peut vous résoudre ce problème et d'expliquer ce qui se passe dans ce ma route ..

merci pour votre préoccupation

Répondre

1

Votre problème est que vous ne pouvez pas obtenir l'objet retourné à partir de route dans le gestionnaire d'actions directement this.get('profileFormsAttributes'); Par conséquent, votre réglage ne fonctionne pas.

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

Même au-dessus de deux instructions ne fonctionne pas; parce que vous ne pouvez pas récupérer model ou comme ceci.

Vous avez deux options; soit vous devez enregistrer ce que vous allez retourner de modèle directement dans model crochet avec this.set('model', model) ou vous pouvez le réaliser avec this.controllerFor(this.get('routeName')).get('model')

Je recommanderais la deuxième approche pour votre cas. S'il vous plaît jeter un oeil à la suivante twiddle que j'ai préparé pour illustrer le cas pour vous.

S'il vous plaît jeter un oeil à index.jsfoo attribut d'objet retourné par model crochet est mis à

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

J'espère que cela aide.

+0

merci les gars ça a fonctionné maintenant :) – cahyowhy