mercredi 20 janvier 2016

How should I reload model from child controller in emberjs?

I am having problem while trying to update the model values, when PendingActionController.updateStage method is called I need it to update the related model & reflect the updated values. If I create another method in PendingController like ShowMessage it displays the alert.

Please explain What approach should I use?

For example, following is the code:

<script type="text/x-handlebars" id="pending/_actions">
<div class="content-actions">
    <h2>Pending Actions</h2>
    <ul>
        {{#each pendingstages}}
            <li>
                {{#unless refreshingStage}}
                    {{render 'pendingAction' this}}
                {{/unless}}
            </li>
        {{/each}}
    </ul>
</div>
</script>


<script type="text/x-handlebars" id="pendingAction">    
    <div class="actionsBox">
        <div class="actionsBar">
            <div {{bindAttr class=":actionStatus completed:blue:green"}} {{action updateStage this}}>&nbsp;</div>
        </div>
        <div class="clear-both"></div>
    </div>
</script>


PendingController:

App.PendingController = App.BaseObjectController.extend(App.ActionsControllerMixin, {
needs: ['application'],
postRender: function () {   
    //Some code here....
},

pendingstages: function(){
    return App.PendingStage.find({Id: this.get('model.id')});
}.property('model.id', 'model.@stages.completed', 'refreshStage'),

ShowMessage: function(){
   alert('Inside Sohw message.');
},
});


PendingActionController

App.PendingActionMixin = {
    isEditing: false,
    canDelete: true,
    canEdit: true,

    toggleIsEditing: function(){
        this.toggleProperty('isEditing');
    }
};

App.PendingActionController = App.BaseObjectController.extend(App.PendingActionMixin, {  
    needs: 'pending',   
    postRender: function(){
        //some code here...
    },

    updateStage: function(stage){
        var self = this;
        this.get('controllers.pending').send('pendingstages');      
    },
});




Aucun commentaire:

Enregistrer un commentaire